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

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

QA

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

답변 1

본문

 

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

 

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

 


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

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;

 

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로