릴레이션 테이블 사이에 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 | 타이어,엔진,손잡이 |
이렇게 출력을 하고 싶습니다 ㅠ,ㅠ
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;
이렇게 하면 될 것 같은데 실제론 안해봤어요...ㅎㅎ
답변을 작성하시기 전에 로그인 해주세요.