2013-10-27 90 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:呵呵呵呵歡呼隊友 –