我有3张看起来像这样的表 -
我正在尝试从内容表中选择5个项目,同时显示与内容关联的每个标记。这就是我所拥有的 -
SELECT c.*, t.tag FROM content AS c LEFT JOIN contenttags AS ct ON c.cid = ct.cid LEFT JOIN tags AS t ON ct.tid = t.tid LIMIT 5
但我似乎得到的是一大堆重复的行,唯一的区别就是标签。我认为理想情况下,所有标签都可以在sql中合并到一个字段中?我不知道,我是不是错了?
答案 0 :(得分:3)
您可以使用GROUP_CONCAT()
函数,该函数将返回以逗号分隔的标记:
SELECT c.*, GROUP_CONCAT(t.tag) AS Tags
FROM content AS c
LEFT JOIN contenttags AS ct ON c.cid = ct.cid
LEFT JOIN tags AS t ON ct.tid = t.tid
GROUP BY c.cid
LIMIT 5