【发布时间】:2018-08-24 13:38:39
【问题描述】:
由于某种原因,我使用以下查询从标签和人员表中获取重复值:
# Selects
SELECT
Organization.name AS 'Name',
GROUP_CONCAT(Person.name) AS 'Persons',
GROUP_CONCAT(Tag.name) AS 'Tags'
# From
FROM Organization
# Joins
LEFT JOIN Person ON Organization.id = Person.organizationID
LEFT JOIN Refs ON Organization.id = Refs.fromID
LEFT JOIN Tag ON Tag.id = Refs.toID
GROUP BY Organization.id
如果我删除“Person”或“Refs + Tag”JOIN,重复项就会消失。我对这个问题有点困惑。
这是 SQL Fiddle 的链接: http://sqlfiddle.com/#!9/6251f/3/0
【问题讨论】:
-
这是因为公司 1 有两个与之关联的标签,所以每个标签都会得到一个响应。如果您输出的是单独的行数据而不是连接,您会在每行看到不同的标签 ID。
标签: mysql group-by left-join group-concat