2014-02-13 59 views
0

想知道如果有人可以幫助新手出來一些SQL?SQL計數與兩個表

enter image description here

右鍵所以基本上我想所有的客戶ID的具有一定COUNTRYCODE相關的我可以通過對客戶表做一個簡單的查詢,但我然後需要找出多少表格客戶已經在訂單表中提交。

因此,在總結,我需要得到的customerID的客戶表列表,並計算他們在訂單表多少時間顯示出來。

最簡單的方法是什麼?

P.S.請忽略上面圖片中的任何數據類型/關係問題,這僅僅是一個例子。

謝謝。

回答

1

加入的表,在國家代碼和組篩選結果:

SELECT CustomerID, COUNT(*) 
FROM  query_test.customer JOIN query_test.Order USING (CustomerID) 
WHERE query_test.customer.countrycode = ? 
GROUP BY CustomerID 
0

你可以使用

SELECT 
    c.customerID, 
    count(o.form_id) AS form_count 
FROM 
    customer c INNER JOIN order o 
    ON c.customerID = o.customerID 
WHERE 
    c.countrycode = ?? 
GROUP BY 
    c.customerID 
0

如果您有沒有任何訂單的客戶,那麼你將要a left outer join

SELECT c.CustomerID, COUNT(o.CustomerID) as NumOrders, COUNT(distinct FormID) as NumForms 
FROM query_test.customer c LEFT JOIN 
    query_test.Order o 
    on c.CustomerID = o.CustomerId 
WHERE c.countrycode = ? 
GROUP BY c.CustomerID; 

注意這個數字既包括訂單數量又包括表單數量秒。