GROUP_CONCAT 中的双重结果与 MySQL 中的双重 JOIN

Posted

技术标签:

【中文标题】GROUP_CONCAT 中的双重结果与 MySQL 中的双重 JOIN【英文标题】:Double results in GROUP_CONCAT with double JOIN in MySQL 【发布时间】:2014-12-30 10:48:04 【问题描述】:

我有以下表格:

产品

字段:ID、标题 值:(1,'Product 1')

table1

字段:id、idProduct 值:(1,1),(2,1)

table2

字段:id、idProduct 值:(3,1),(4,1)

还有以下查询:

SELECT
  p.*,
  GROUP_CONCAT(t1.id ORDER BY t2.id),
  GROUP_CONCAT(t2.id ORDER BY t2.id)
FROM
  products p
JOIN table1 t1 ON p.id=t1.idProduct
JOIN table2 t2 ON p.id=t2.idProduct
GROUP BY
  p.id

预期结果是:

1 | Product 1 | 1,2     | 3,4 

不幸的是我得到了:

1 | Product 1 | 1,1,2,2 | 3,3,4,4

【问题讨论】:

见***.com/questions/8872351/… 【参考方案1】:

您需要添加 DISTINCT:

GROUP_CONCAT(DISTINCT t1.id ORDER BY t2.id),

【讨论】:

以上是关于GROUP_CONCAT 中的双重结果与 MySQL 中的双重 JOIN的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的group_concat与“case when”条件

无法读取 GROUP_CONCAT 结果中的特定值

将 vuejs 中的 2 个输入与中间的计算双重链接

mysql中的多行查询结果合并成一个

如何包含两个表中的所有值? group_concat 和其他值

SQL将的同一个分组中的值连接起来,返回一个字符串结果 使用group_concat()