【SQL29】购买了所有产品(5 和 6)的客户的 id

写一条 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);

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章