2017-10-09 10 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; 
관련 문제