2012-05-24 27 views
1

我有一個查詢發現被遺棄的車,看起來像這樣:MySQL查詢 - 一個BLOB 1種獨特元素的BLOB(行)的極限成績

SELECT c.customerid, 
     c.custconfirstname, 
     c.custconemail, 
     o.ordstatus, 
     o.orddate, 
     GROUP_CONCAT( 'Order Id: ', orderid, ' | Product name: ', ordprodname, ' | Quantity: ', ordprodqty, '<br>') AS ordered_items 
FROM isc_customers c 
     LEFT OUTER JOIN isc_orders o ON o.ordcustid = c.customerid 
     LEFT OUTER JOIN isc_order_products op ON op.orderorderid = o.orderid 
     LEFT OUTER JOIN isc_product_images pi ON pi.imageprodid = op.orderprodid 
GROUP BY c.customerid 
HAVING COUNT(DISTINCT o.ordcustid) >0 
      AND o.ordstatus = 0 
      AND o.orddate < UNIX_TIMESTAMP() - '18000' 
      AND o.orddate > UNIX_TIMESTAMP() - '259200' 

對於每個客戶(客戶ID唯一)團塊會產生像這樣的ordered_items:

Order Id: 15256 | Product name: PROD A | Quantity: 1 
,Order Id: 15256 | Product name: PROD B | Quantity: 1 
,Order Id: 15299 | Product name: PROD A | Quantity: 1 
,Order Id: 15301 | Product name: PROD A | Quantity: 1 

這基本上可以解釋的是,客戶已在該時間範圍3臺廢棄的車。由於此查詢將用於發送廢棄的購物車電子郵件,因此我不希望發送垃圾郵件並以各種原因發送電子郵件(每個廢棄購物車中的每個產品(獨特的orderid)),其中包括上述客戶嘗試過的示例將產品A放入購物車3次以上,並在電子郵件中獲得3次。

那麼如何限制查詢,以便它只會返回每個客戶端1 orderid的結果?

回答