写一条 SQL 查询语句,从 Customer 表中查询购买了 Product 表中所有产品的客户的 id。示例:Customer 表:
customer_id product_key
1 5
2 6
3 5
3 6
1 6
product表
product_key
5
6
result
1
3
购买了所有产品(5 和 6)的客户的 id 是 1 和 3
解决:
select a.customer_id
from (
select customer_id
,product_key
from customer
where product_key = 5
) a
inner join (
select customer_id
,product_key
from customer
where product_key = 6
) b
on a.customer_id = b.customer_id
order by customer_id
;
customer_id
1
3
备注:建表和数据
create table customer(customer_id int,product_key int);
insert into customer values(1, 5);
insert into customer values(2, 6);
insert into customer values(3, 5);
insert into customer values(3, 6);
insert into customer values(1, 6);
create table product(product_key int);
insert into product values(5);
insert into product values(6);