我有一个评论表和一个标签表。对于每条评论,可能有多个标签,也可能没有。我想加入这两者,这样我就可以获得每个评论的标签列表。
评论表:
+---------+----------+---+
|CommentID| Title | ..|
+---------+----------+---+
| 1 | animals| |
| 2 | plants | |
+---------+----------+---+
标签表:
+---------+----------+---+
| TagID |CommentID | ..|
+---------+----------+---+
| 5 | 1 | |
| 6 | 1 | |
| 7 | 3 | |
+---------+----------+---+
因此,查询应该返回标签,(5,6) 用于评论 ID == 1 和空数组用于评论 ID == 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