MySQL-eins-zu-viele " - join mit Group By gibt nur eine Beobachtung

Habe ich einen Kommentar-Tabelle und eine tag-Tabelle. Für jeden Kommentar, kann es mehrere tags, oder keine. Ich möchte die beiden so bekomme ich eine Liste der tags, die für jeden Kommentar.

CommentTable:

+---------+----------+---+
|CommentID|   Title  | ..|
+---------+----------+---+
|   1     |   animals|   |
|   2     |   plants |   |
+---------+----------+---+

TagTable:

+---------+----------+---+
|  TagID  |CommentID | ..|
+---------+----------+---+
|    5    |     1    |   |
|    6    |     1    |   |
|    7    |     3    |   |
+---------+----------+---+

So, eine Abfrage zurückgeben soll die tags, (5,6) für eine commentID == 1 und leeres array für CommentID == 2

Dies ist, was ich habe - es wählt nur die Letzte ID und kein Vielfaches:

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
  • Wenn Sie eine GRUPPE DURCH, er muss mindestens alle Daten, die Sie ausgewählt.
InformationsquelleAutor Justin | 2012-08-04
Schreibe einen Kommentar