테스트 사이트 - 개발 중인 베타 버전입니다

릴레이션 테이블 사이에 DB SELECT 문의 있습니다! 채택완료

amkorDB 6년 전 조회 1,909

 

product

id product_item
1 2
2 3

 

product_item_map

id product_id item_id
1 1 1
2 1 3
3 1 4
4 2 2
5 2 5
6 2 1

 

 

item

id name
1 타이어
2 엔진
3 백미러
4
5 손잡이

 

 

 

product_item_map 이라는 릴레이션 테이블을 두고

product(MANY) <> item(MANY) 관계에 있습니다.

 

일단 제가 하고 싶은것은

 

p.id i.name
1 타이어,백미러,문
2 타이어,엔진,손잡이
   
   

 

이렇게 출력을 하고 싶습니다 ㅠ,ㅠ

 

</p>

<p>SELECT i.name FROM product AS p</p>

<p>LEFT JOIN product_item_map AS pim</p>

<p>ON (pim.product_id = p.id)</p>

<p>LEFT JOIN item AS i</p>

<p>ON (pim.item_id = i.id)</p>

<p>WHERE p.id = 1</p>

<p>

 

당연히 LETF JOIN시 중복 열이 나오겠죠 ㅠ,ㅠ

 

혹시 가능한 방법이 있나요?

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
LovelyCaT
6년 전

SELECT product_id, GROUP_CONCAT(i.name)

FROM product_item_map AS pim

left join item as i on (pim.item_id=i.id)

GROUP BY product_id;

 

이렇게 하면 될 것 같은데 실제론 안해봤어요...ㅎㅎ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

a
amkorDB
6년 전
대박입니다.... 덕분에 공부되었습니다!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인