2012-05-12 42 views
4
需要MySQL查詢幫助

能有人幫我寫的確切查詢,它可以給我想要的結果如下,在得到結果作爲每願望

我寫的,

SELECT tbl_order_detail.order_id, 
      tbl_order_detail.order_title, 
      tbl_order_detail.dealer_id 
    FROM tbl_order_detail 
LEFT JOIN tbl_order_lead_send_detail ON tbl_order_detail.order_id=tbl_order_lead_send_detail.order_id 
    WHERE tbl_order_detail.order_status = 'Active' 

並從一個php函數中找到經銷商名稱,該函數將dealer_id放入其中並返回dealer_name(使用另一個mysql查詢),並從另一個mysql查詢計數

但它沒有給我想要的輸出。它給輸出

但我想只有一個行上述盤旋的,因爲一切都在他們相同,但它們都出現多次輸出(爲什麼不是一個)。

有人可以幫助我嗎?

+0

你確定上面的查詢爲您提供粘貼輸出?似乎你錯過了查詢(count)中的最後一列。 – ilanco

回答

3

如果GROUP BY ORDER_ID,你要善於去

編輯:

要獲得經銷商名稱,剛剛加入的經銷商表並選擇經銷商名稱列。

未經測試,可能含有錯誤

SELECT 
    tbl_order_detail.order_id, 
    tbl_order_detail.order_title, 
    dealer.dealer_name, 
    COUNT(tbl_order_lead_send_detail.order_id) AS total_customers_count 
FROM tbl_order_detail 
JOIN dealers ON (tbl_order_detail.dealer_id = dealers.dealer_id) 
LEFT JOIN tbl_order_lead_send_detail ON (tbl_order_detail.order_id = tbl_order_lead_send_detail.order_id) 
WHERE tbl_order_detail.order_status = 'Active' 
GROUP BY tbl_order_detail.order_id, tbl_order_detail.order_title, dealer.dealer_name; 
+0

非常感謝。我可以在查詢本身中獲得dealer_name嗎?目前我使用不同的查詢來獲得經銷商名稱。然後,我將不得不只使用一個查詢 – Thompson

+0

當然,只需加入在您的查詢中的經銷商表,回答更新 – ilanco

+0

是的,它是給錯誤,**#1054 - 未知列'在'子句'*'的經銷商.dealer_id * * – Thompson

1

爲了得到一個數,使用COUNT()。按訂單ID對結果進行分組,使用GROUP BY tbl_order_detail.order_id- MySQL(或一般SQL)的優勢之一在於它與普通英語相當​​接近。

0

試試這個:

SELECT OD.order_id,   
     OD.order_title, 
     OD.dealer_id, 
     SD.customer_id, 
     COUNT(SD.id) AS NumCustomers 
FROM  tbl_order_detail OD 
LEFT JOIN tbl_order_lead_send_detail SD 
     ON OD.order_id=SD.order_id 
WHERE OD.order_status='Active' 
GROUP BY OD.order_id,   
     OD.order_title, 
     OD.dealer_id, 
     SD.customer_id