2013-10-27 92 views
1

我有一个查询谁是这样的MySQL的GROUP_CONCAT上加入行DISTINCT

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 

出于某种原因或antoher我在resultfield得到“色”重复的值,即“1,2,1,2”。为什么DISTINCT无法在连接的行上工作?有没有机会解决或者我错过了一个观点?

回答

1

尝试DISTINCTcolors.id ::

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 
+0

我应该对现在休息一下......我还是谢谢你 – Johnny000

+0

@ Johnny000:呵呵呵呵欢呼队友 –