连接列 MYSQL

Concat column MYSQL

我有这个select

SELECT page.*, page_lang.*, category.title as category FROM page
JOIN page_lang ON page.id = page_lang.id_page
JOIN relation ON page.id = relation.from_id
JOIN page_lang as category ON category.id_page = relation.to_id
WHERE page.type = 'blog-detail'
AND relation.type = 1

当一页有两个或更多类别时,这 return 重复行

ID 页 |标题 |类别
1 |标题 1 |类别 1
2 |标题 2 |类别 1
3 |标题 3 |类别 2
1 |标题 1 |类别 2

但我想要这个

ID 页 |标题 |类别
1 |标题 1 |第 1 类、第 2 类
2 |标题 2 |类别 1
3 |标题 3 |类别 2

如果我使用 GROUP_CONCAT(category.title) return 1 行。

尝试使用命令"UNIQUE"

SELECT UNIQUE page.*, page_lang.*, category.title as category FROM page
JOIN page_lang ON page.id = page_lang.id_page
JOIN relation ON page.id = relation.from_id
JOIN page_lang as category ON category.id_page = relation.to_id
WHERE page.type = 'blog-detail'
AND relation.type = 1

你应该使用 group_concat:

SELECT page.*, page_lang.*, group_concat(distinct category.title) as category FROM page
JOIN page_lang ON page.id = page_lang.id_page
JOIN relation ON page.id = relation.from_id
JOIN page_lang as category ON category.id_page = relation.to_id
WHERE page.type = 'blog-detail'
AND relation.type = 1
GROUP BY page.id