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

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

QA

릴레이션 테이블 사이에 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;

 

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

답변을 작성하시기 전에 로그인 해주세요.
전체 1,506
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT