簡體   English   中英

mysql group_concat加入

[英]mysql group_concat in joins

我有一個查詢,看起來像這樣:

SELECT 
    *, 
    GROUP_CONCAT(DISTINCT web_order_item.od_pcode) AS items, 
    GROUP_CONCAT(DISTINCT woi_id) AS woi_ids 
    FROM web_order 
JOIN web_order_item USING(od_id) 
JOIN customer_master ON customer_master.VC_CUSTOMER_CODE = web_order.p_vendor 
LEFT JOIN production_item ON production_item.ItemID IN (GROUP_CONCAT(DISTINCT woi_id)) AND QCStatus <> 'received' 
WHERE
   web_order.od_date >= FROM_UNIXTIME(1357257600) 
   AND web_order.od_date <= FROM_UNIXTIME(1359936000) 
   AND web_order.od_id > 0 
   AND 1 
GROUP BY web_order.od_id 
ORDER BY web_order.od_id DESC 

該查詢拋出錯誤

常規錯誤:1111無效使用組功能

我在這里想念什么? 謝謝

您要完整地選擇原始記錄,然后在web_order_item上進行組連接,由於DISTINCT屬性,這將產生一行,如果有多個記錄,則將其分組,然后試圖再次分組...到底要做什么分組? 沒有聚合,只要按一個順序就足夠了。 刪除分組依據...或更改分組依據以在合並之前包含所有相關項...

SELECT 
*, 
GROUP_CONCAT(DISTINCT web_order_item.od_pcode) AS items, 
GROUP_CONCAT(DISTINCT woi_id) AS woi_ids 
FROM web_order 
JOIN web_order_item USING(od_id) 
JOIN customer_master ON customer_master.VC_CUSTOMER_CODE = web_order.p_vendor 
LEFT JOIN production_item ON production_item.ItemID IN (GROUP_CONCAT(DISTINCT woi_id))     AND QCStatus <> 'received' 
WHERE
web_order.od_date >= FROM_UNIXTIME(1357257600) 
AND web_order.od_date <= FROM_UNIXTIME(1359936000) 
AND web_order.od_id > 0 
AND 1 
GROUP BY items, woi_ids 
ORDER BY web_order.od_id DESC 

希望這會有所幫助

參考http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM