我有一个注释表和一个标记表。对于每条评论,可能有多个标签,或者没有。我想加入这两个,所以我可以得到每个评论的标签列表。MySQL一对多加入Group By只返回一个观察值
CommentTable:
+---------+----------+---+
|CommentID| Title | ..|
+---------+----------+---+
| 1 | animals| |
| 2 | plants | |
+---------+----------+---+
TagTable:
+---------+----------+---+
| TagID |CommentID | ..|
+---------+----------+---+
| 5 | 1 | |
| 6 | 1 | |
| 7 | 3 | |
+---------+----------+---+
因此,查询应返回代码,(5,6),用于一个commentID == 1和空数组为CommentID == 2
这是我 - 只选择最后一个ID,而不是倍数:
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
当你犯了一个_GROUP BY_,它必须包含至少你选择的所有数据。 – 2012-08-04 10:05:27