2016-05-13 59 views
1

我試圖顯示3個表中的所有行。MySQL:顯示3個表中的所有行

我需要顯示完整的客戶列表。 每位顧客可以有0,1個或更多提交。 每個提交可以有0.1或更多的產品。

CustomerID | submissionID | submissionProductID 
001  | s001   | sp001 
001  | s002   | sp002 
002  | s003   | sp003  
002  | s003   | sp004  
002  | s003   | sp005 
003  | ---   | --- 
004  | s005   | --- 

這樣:

customer 1 has 2 submissions, 1 product in each. 
customer 2 has 1 submission containing 3 products. 
customer 3 has no submission. 
customer 4 has 1 submission but no pruducts. 

我似乎無法顯示所有記錄。 下面的SQL將顯示所有客戶,但不顯示多個submisison行或多個產品行。

當然,有些客戶會有一個空白的提交和產品。 而一些客戶意見將不會有產品。

SELECT c.CustomerID as 'CustID', s.submissionID, sp.submissionProductID 
FROM tblCustomer c 
LEFT JOIN tblSubmission s on c.CustomerID = s.customerID 
LEFT JOIN tblSubmissionProducts sp on s.submissionID = sp.submissionID 
GROUP BY c.CustomerID 
ORDER BY c.CustomerID; 

任何幫助將不勝感激。 謝謝。

+5

by子句中刪除你的小組,如果你沒有這by子句,需要一批聚合函數不使用它。 –

+0

這是我想的。只需再次測試輸出。 – nads

回答

3

如果你只是想獲得的所有記錄,請試試這個;)

SELECT c.CustomerID as 'CustID', s.submissionID, sp.submissionProductID 
FROM tblCustomer c 
LEFT JOIN tblSubmission s on c.CustomerID = s.customerID 
LEFT JOIN tblSubmissionProducts sp on s.submissionID = sp.submissionID 
ORDER BY c.CustomerID; 
+0

是的。這樣可行。 我曾嘗試過,但它沒有奏效。不知道爲什麼。現在工作。 謝謝Stitch和Reno博士。 – nads