题89:
根据下面两表编写SQL 查询来报告购买了产品 A 和产品 B 却没有购买产品 C 的顾客的 ID 和姓名( customer_id 和 customer_name ),我们将基于此结果为他们推荐产品 C ,您返回的查询结果需要按照 customer_id 排序。
其中:
- Customers表:customer_id 是主键,customer_name 是顾客的名称;
- Orders表:order_id 是主键,customer_id 是购买了名为 “product_name” 产品顾客的id。
解题思路:直接判断是否在或不在某一组中.
select * from Customers
where customer_id in(
select customer_id
from Orders
where product_name = 'A'
)
and customer_id in (
select customer_id
from Orders
where product_name = 'B'
)
and customer_id not in (
select customer_id
from Orders
where product_name = 'C'
)
order by customer_id;