用下表:
SELECT i.*, GROUP_CONCAT(t.name) tagList
FROM items AS i
LEFT JOIN tag_rel AS tr ON (tr.item = j.id)
LEFT JOIN tags AS t ON (t.id = tr.tag)
GROUP BY i.id
ORDER BY i.id DESC
有没有办法限制tagList的元素?不是给我所有标签(在某些情况下超过 30 个),我可以将它限制为 5 个吗?
最佳答案
SELECT i.*, SUBSTRING_INDEX(GROUP_CONCAT(t.name SEPARATOR ','), ',', 5) tagList
FROM items AS i
LEFT JOIN tag_rel AS tr ON (tr.item = j.id)
LEFT JOIN tags AS t ON (t.id = tr.tag)
GROUP BY i.id
ORDER BY i.id DESC
只需将 5 替换为所需的数字
关于mysql - 限制 LEFT JOIN 组的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20049557/