简体   繁体   English

连接行上的mysql GROUP_CONCAT DISTINCT

[英]mysql GROUP_CONCAT DISTINCT on joined rows

I have a query who looks like this 我有一个看起来像这样的查询

SELECT
 producttemp.*,
 GROUP_CONCAT(colors.id) as color,
 GROUP_CONCAT(DISTINCT upc.UPC) as upc
FROM producttemp
INNER JOIN productcolor
 ON productcolor.productid=producttemp.id
INNER JOIN upc
 ON upc.productid=producttemp.id
INNER JOIN colors
 ON colors.id=productcolor.colorid
INNER JOIN categorie
 ON categorie.id = producttemp.productcategorie
GROUP BY producttemp.id
LIMIT 5

For some reason or antoher I get in the resultfield "color" duplicate values ie "1,2,1,2". 由于某种原因或其他原因,我在结果字段中获得“颜色”重复值,即“ 1,2,1,2”。 Why does DISTINCT not work on joined rows? 为什么DISTINCT对联接的行不起作用? Is there any chance to work around or am I missing a point? 有没有解决的机会,或者我错过了要点?

Try DISTINCT on colors.id :: colors.id上尝试DISTINCT ::

SELECT
 producttemp.*,
 GROUP_CONCAT(DISTINCT colors.id) as color,
 GROUP_CONCAT(DISTINCT upc.UPC) as upc
FROM producttemp
INNER JOIN productcolor
 ON productcolor.productid=producttemp.id
INNER JOIN upc
 ON upc.productid=producttemp.id
INNER JOIN colors
 ON colors.id=productcolor.colorid
INNER JOIN categorie
 ON categorie.id = producttemp.productcategorie
GROUP BY producttemp.id
LIMIT 5

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM