题目:

Customer 表:

Product 表:

写一条 SQL 查询语句,从 Customer 表中查询购买了 Product 表中所有产品的客户的 id。

示例:

 解题思路:

建表语句:

1 create table if not exists customer_1045(customer_id int(3) not null, product_key int(3));
2 create table if not exists product_1045(product_key int(3));
3 truncate table customer_1045;
4 insert into customer_1045 values(1,5),(2,6),(3,5),(3,6),(1,6);
5 truncate table product_1045;
6 insert into product_1045 values(5),(6);

注意一下外键:

外键为某个表中的一列,它包含另一个表 的主键值,定义了两个表之间的关系。

1. Customer表中的一列是 product_key, product_key是Product表的主键;
2. 证明Customer表中的product_key 必定来自Product表;
3. 不存在:Customer中的product_key 不是 Product 表中的值。

1 select customer_id
2 from customer c
3 group by customer_id
4 having count(distinct c.product_key) = (select count(product_key) from product);

注意:

第一个distinct:如果一个用户能够重复购买同一个商品多次的话,比如(1,5)出现多次的话,就需要使用distinct去掉重复值;

第二个product_key前面不需要加distinct :product_key 是product的主键,故不会重复。

力扣1045(MySQL)-买下所有产品的客户(中等)的更多相关文章

  1. 力扣——Next Permutation(下一个排列) python实现

    题目描述: 中文: 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须原地修改,只允许 ...

  2. 力扣1052. 爱生气的书店老板-C语言实现-中等难度

    题目 传送门 文本 今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时 ...

  3. 【力扣】123. 买卖股票的最佳时机 III

    给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易. 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的 ...

  4. mysql5.7 mysql库下面的user表没有password字段无法修改密码

    如题所述,mysql5.7  mysql库下面的user表没有password字段无法修改密码, 5.7版本已经不再使用password来作为密码的字段了  而改成了authentication_st ...

  5. JS数据结构第六篇 --- 二叉树力扣练习题

    1.第226题:翻转二叉树 递归+迭代两种实现方式: /** 反转二叉树 * Definition for a binary tree node. * function TreeNode(val) { ...

  6. LeetCode 1244. 力扣排行榜

    地址 https://www.acwing.com/solution/LeetCode/content/5765/ 题目描述新一轮的「力扣杯」编程大赛即将启动,为了动态显示参赛者的得分数据,需要设计一 ...

  7. 力扣——Copy List with Random Pointer(复制带随机指针的链表) python实现

    题目描述: 中文: 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点. 要求返回这个链表的深拷贝. 示例: 输入:{"$id":" ...

  8. 力扣——remove element(删除元素) python实现

    题目描述: 中文: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) ...

  9. 力扣 122 买卖股票的最佳时机II

    力扣 122 买卖股票的最佳时机II 思路: 动态规划,表面上是\(O(2^n)\)的搜索空间,实际上该天的选择只与前一天的状态(是否持有股票)有关.从收益的角度来看,确实每一天的不同选择都会产生不同 ...

  10. 力扣119.杨辉三角II-C语言实现

    题目 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 来源:力扣(LeetCod ...

随机推荐

  1. k8s安全之Network Policy

    K8s Network Policy 是一种资源,它用于在 Pod 之间以及从其他网络实体到 Pod 的通信中进行网络级别的访问控制.它允许您定义一组规则,这些规则可以指定允许或拒绝网络流量. 具体来 ...

  2. UDP可靠传输协议KCP的一些理解

    UDP主要用在哪两个方面 游戏 音视频通话 为什么要使用UDP? 实时性的考虑,丢包重传,TCP协议栈重传无法控制,UDP重发可以自定义策略. 在DNS查询的时候,也使用UDP,对资源的考虑. 如何做 ...

  3. api-ms-win-crt-***.dll, api-ms-win-core-***.dll,win7以后kernel.dll,msvc*.dll的改变。api-ms-win-crt-***.dll 有问题就是 c++ redist 版本过低。

    api-ms-win-crt-***-|1-1-0.dll是redistributable c++的一部分.以往只会因为msvc*NNN.dll才要去找对应的redistributable c++版本 ...

  4. FFmpeg命令行之ffprobe

    一.简述 ffprobe是ffmpeg命令行工具中相对简单的,此命令是用来查看媒体文件格式的工具. 二.命令格式 在命令行中输入如下格式的命令: ffprobe [文件名] 三.使用ffprobe查看 ...

  5. 浅析三维模型OBJ格式轻量化压缩文件大小的技术方法

    浅析三维模型OBJ格式轻量化压缩文件大小的技术方法 在减小三维模型OBJ格式轻量化文件大小方面,有许多技术和方法可以使用.下面我将介绍一些常用的方法来减小OBJ文件的大小. 1.优化顶点数量:减少OB ...

  6. Python实现端口扫描

    实验环境 攻击主机IP:172.18.53.145 目标主机IP:172.18.53.28 脚本编写 思路:使用TCP协议遍历连接目标的所有端口,如果连接成功说明该端口开放,为了提升效率,使用多线程执 ...

  7. 快速上手系列:CSS

    一 选择符 1 通配:*{} 所有元素 类:p{} 如 p 标签等相应元素 ID:#id{} 使用相应 id 属性的元素样式 类:.类名{} 使用相应 class 属性的元素样式 包含:div p{} ...

  8. 从零开始的 dbt 入门教程 (dbt cloud 自动化篇)

    一.引 在前面的几篇文章中,我们从 dbt core 聊到了 dbt 项目工程化,我相信前几篇文章足够各位数据开发师从零快速入门 dbt 开发,那么到现在我们更迫切需要解决的是如何让数据更新做到定时化 ...

  9. KingbaseES Json 系列十:Json数组构造函数

    KingbaseES Json 系列十--Json数组构造函数(ARRAY_TO_JSON,JSONB_BUILD_ARRAY,JSON_ARRAY,JSON_BUILD_ARRAY) JSON 数据 ...

  10. Spring框架之IoC( Inversion of Control )基础知识入门

    1.IoC创建对象的方式 使用无参构造创建对象 假如要使用有参构造创建: 下标赋值constructor-arg <!--有参--> <bean id="User" ...