2026, 새로운 도약을 시작합니다.

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

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 타이어,엔진,손잡이
   
   

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

Copy


SELECT i.name FROM product AS p

LEFT JOIN product_item_map AS pim

ON (pim.product_id = p.id)

LEFT JOIN item AS i

ON (pim.item_id = i.id)

WHERE p.id = 1

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

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

답변 1개

채택된 답변
+20 포인트

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개

대박입니다.... 덕분에 공부되었습니다!

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

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

로그인
🐛 버그신고