2016-06-12 13 views
1

Ich habe zwei Tabellen eine Nachrichten und eine Kommentare Abschnitte. Eine Nachricht kann viele Kommentare enthalten, aber ein Kommentar kann nur eine Nachricht enthalten. Ich versuche, eine SQL-Select-Anweisung zu schreiben, die die Nachricht und alle Kommentare, die sich auf diese Nachricht beziehen, in einer Zeile zurückgibt. Gibt es eine Möglichkeit, das in MySQL zu tun? Wie würde ich darüber gehen? Der Kommentar hat eine Nachrichten-ID, die ein Fremdschlüssel ist, der sich auf die ID von Nachrichten bezieht. Hier ist mein ERD DiagrammVerschachtelte Select-Anweisung in Mysql

enter image description here

Antwort

1

Sie Group_concat verwenden sollten und für Group_concat Sie Gruppe müssen von

SELECT message, GROUP_CONCAT(comment SEPARATOR ';') as comments 
FROM messages 
JOIN comments ON messages .id = comments .message_id 
GROUP By message 
1

Sie die group_concat Funktion verwenden:

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 
Verwandte Themen