Double导致GROUP_CONCAT在MySQL中具有双JOIN

时间:2014-11-03 17:53:33

标签: mysql join group-concat

我有以下表格:

产品

  • 字段:id,title
  • 值:(1,'产品1')

表1

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

表2

  • 字段: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

1 个答案:

答案 0 :(得分:7)

您需要添加DISTINCT:

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