2016-06-12 3 views
1

두 개의 테이블에 메시지 섹션과 주석 섹션이 있습니다. 메시지에는 많은 주석이있을 수 있지만 주석에는 하나의 메시지 만있을 수 있습니다. 나는 하나의 행에 그 메시지를 참조하는 모든 의견과 메시지를 반환하는 SQL select 문을 작성하려고합니다. mysql에서 그렇게 할 수있는 방법이 있습니까? 나는 어떻게 그것에 대해 갈 것입니다. 주석은 메시지 ID와 관련이있는 외래 키입니다. 여기mysql의 중첩 select 문

enter image description here

답변

1

당신은 GROUP_CONCAT를 사용해야하고 GROUP_CONCAT 당신은

SELECT message, GROUP_CONCAT(comment SEPARATOR ';') as comments 
FROM messages 
JOIN comments ON messages .id = comments .message_id 
GROUP By message 
에 의해 그룹이 필요합니다
1

당신은 group_concat 기능을 사용할 수 있습니다 내 ERD도 :

SELECT message, GROUP_CONCAT(comment SEPARATOR ';') AS all_comments 
FROM  messages m 
JOIN  comments c ON m.id = c.message_id 
GROUP BY m.id, message