我正在使用Sqlite3,我对如何使用给定数据集构建字符串感到有点困惑。我想要的是从给定的项目中获取每个标记而不需要处理一堆行。
SELECT i.item, t.tag
FROM items i
LEFT JOIN tags t
ON i.id=t.item
WHERE i.id=:id;
返回如下表格:
| item6 | tag1 |
| item6 | tag2 |
首选格式:
| item6 | tag1, tag2, tag3 |
答案 0 :(得分:2)
使用group_concat:
SELECT i.item,
group_concat(t.tag)
FROM items AS i
LEFT JOIN tags AS t ON i.id = t.item
WHERE i.id = :id
GROUP BY i.item
对于像这样的小型查询,性能并不重要,但如果您认为连接和GROUP BY过度,请尝试以下方法:
SELECT item,
(SELECT group_concat(tag)
FROM tags
WHERE item = :id)
FROM items
WHERE id = :id