Łączenie MySQL jeden do wielu z Group By zwraca tylko jedną obserwację
Mam tabelę komentarzy i tabelę tagów. Dla każdego komentarza może być wiele tagów lub brak tagów. Chcę dołączyć do dwóch, abym mógł uzyskać listę tagów dla każdego komentarza.
CommentTable:
+---------+----------+---+
|CommentID| Title | ..|
+---------+----------+---+
| 1 | animals| |
| 2 | plants | |
+---------+----------+---+
TagTable:
+---------+----------+---+
| TagID |CommentID | ..|
+---------+----------+---+
| 5 | 1 | |
| 6 | 1 | |
| 7 | 3 | |
+---------+----------+---+
Zatem zapytanie powinno zwracać znaczniki, (5,6) dla commentID == 1 i pustą tablicę dla CommentID == 2
To jest to, co mam - wybiera tylko ostatni identyfikator, a nie wielokrotności:
SELECT c.CommentID, c.Title, t.TagID FROM Comment as c
LEFT OUTER JOIN Tag as t ON c.CommentID = t.CommentID
GROUP BY t.TagID