2017-10-09 114 views
-1

與表格一樣,我希望輸出所有產品的清單,但同時列出誰購買了每種產品的清單。輸出產品清單以及誰購買了這些產品

如下

products 
================= 
|prodId |prod | 
================= 
|1  |hat | 
|2  |shirt | 
|3  |watch | 
|4  |cream | 
|5  |pizza | 
================= 


orders 
========================= 
|ordID |prodID |cust | 
========================= 
|1  |2  |paul | 
|2  |4  |paul | 
|3  |4  |bob | 
|4  |5  |jane | 
|5  |4  |sarah | 
========================= 

我的數據structued我希望得到這樣的結果,其中如果沒有客戶已經購買了它,這將是null

================= 
|prod |cust | 
================= 
|hat |null | 
|shirt |paul | 
|watch |null | 
|cream |paul | 
|cream |bob | 
|cream |sarah | 
|pizza |jane | 
================= 
+1

嘗試使用谷歌搜索「SQL連接」 – DwB

回答

0
SELECT p.prod, o.cust, count(o.*) count_of 
FROM products as p 
LEFT OUTER JOIN orders as o ON p.prodid = o.prodid 
GROUP BY prod, cust 

要到達在al產品列表中,以from products開始,然後使用OUTER連接,該連接允許返回不匹配的行以及具有 比賽。

然後,group by將列表減少爲唯一的組合,並且它使聚合這樣一個計數。

0

下面的查詢應該做的工作

select p.prod, o.cust from products p left outer join orders o on p.prodId = o.prodId;