2016-06-12 7 views
1

私は2つのテーブルにメッセージとコメントセクションを持っています。メッセージは多くのコメントを持つことができますが、コメントには1つのメッセージしか含めることができません。私は、メッセージと1つの行にそのメッセージを参照しているすべてのコメントを返すSQL SELECTステートメントを記述しようとしています。 mysqlでそれを行う方法はありますか?どのように私はそれについて行くだろう。コメントには、メッセージのIDに関連する外部キーであるメッセージIDがあります。ここに私のERDダイアグラムはmysqlのネストされたselect文

enter image description here

答えて

1

SELECT message, GROUP_CONCAT(comment SEPARATOR ';') as comments 
FROM messages 
JOIN comments ON messages .id = comments .message_id 
GROUP By message 
によってあなたはGROUP_CONCATを使用する必要がありますし、GROUP_CONCATのためにあなたがグループを必要とします
1

であるあなたはgroup_concat機能を使用できます。

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 
関連する問題