1083. Sales Analysis II 难度:简单

1、题目描述

Write an SQL query that reports the buyers who have bought S8 but not iPhone. Note that S8 and iPhone are products present in the Product table.
The query result format is in the following example:
Product table:

product_id product_name unit_price
1 S8 1000
2 G4 800
3 iPhone 1400

Sales table:

seller_id product_id buyer_id sale_date quantity price
1 1 1 2019-01-21 2 2000
1 2 2 2019-02-17 1 800
2 1 3 2019-06-02 1 800
3 3 3 2019-05-13 2 2800

Result table:

buyer_id
1

The buyer with id 1 bought an S8 but didn’t buy an iPhone. The buyer with id 3 bought both.

来源:力扣(LeetCode)

2、解题思路

1# 首先,增加一个子表,找出所有购买iphonebuyer_id

select buyer_id
from Product p left join Sales s
on p.product_id =s.product_id
where product_name='iphone'

2# 两表联查,条件是买了S8和,buyer_id不在上表范围

3、提交记录

select distinct buyer_id
from Product p left join Sales s
on p.product_id =s.product_id
where product_name='S8'
and buyer_id not in 

(select buyer_id
from Product p left join Sales s
on p.product_id =s.product_id
where product_name='iphone')

你可能感兴趣的:(刷题)