文章目录

  • 1. 题目
  • 2. 解题

1. 题目

Customers 表:

+---------------------+---------+
| Column Name         | Type    |
+---------------------+---------+
| customer_id         | int     |
| customer_name       | varchar |
+---------------------+---------+
customer_id 是这张表的主键。
customer_name 是顾客的名称。

Orders 表:

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| order_id      | int     |
| customer_id   | int     |
| product_name  | varchar |
+---------------+---------+
order_id 是这张表的主键。
customer_id 是购买了名为 "product_name" 产品顾客的id。

请你设计 SQL 查询来报告购买了产品 A 和产品 B 却没有购买产品 C 的顾客的 ID 和姓名( customer_id 和 customer_name ),我们将基于此结果为他们推荐产品 C 。

您返回的查询结果需要按照 customer_id 排序。

查询结果如下例所示。

Customers table:
+-------------+---------------+
| customer_id | customer_name |
+-------------+---------------+
| 1           | Daniel        |
| 2           | Diana         |
| 3           | Elizabeth     |
| 4           | Jhon          |
+-------------+---------------+Orders table:
+------------+--------------+---------------+
| order_id   | customer_id  | product_name  |
+------------+--------------+---------------+
| 10         |     1        |     A         |
| 20         |     1        |     B         |
| 30         |     1        |     D         |
| 40         |     1        |     C         |
| 50         |     2        |     A         |
| 60         |     3        |     A         |
| 70         |     3        |     B         |
| 80         |     3        |     D         |
| 90         |     4        |     C         |
+------------+--------------+---------------+Result table:
+-------------+---------------+
| customer_id | customer_name |
+-------------+---------------+
| 3           | Elizabeth     |
+-------------+---------------+
只有 customer_id 为 3 的顾客购买了产品 A 和产品 B ,却没有购买产品 C 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/customers-who-bought-products-a-and-b-but-not-c
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 注意 having 后面要用聚合函数做判断,不能having(product_name = 'A')
# Write your MySQL query statement below
select customer_id, customer_name
from Customers left join Orders
using(customer_id)
group by customer_id
having sum(product_name = 'A')>0and sum(product_name = 'B')>0and sum(product_name = 'C')=0
order by customer_id

or

# Write your MySQL query statement below
select customer_id, customer_name
from Customers
wherecustomer_id in (select customer_id from Orders where product_name='A')andcustomer_id in (select customer_id from Orders where product_name='B')andcustomer_id not in (select customer_id from Orders where product_name='C')
order by customer_id

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode MySQL 1398. 购买了产品A和产品B却没有购买产品C的顾客相关推荐

  1. LeetCode MySQL解题目录

    已完成的 LeetCode MySQL 数据库题目.点击查看我的 LeetCode 算法解题目录. 已解决 123/123 - 简单 54 中等 51 困难 18 前置入门学习 MySQL 基本查询. ...

  2. LeetCode MySQL 1308. 不同性别每日分数总计(累加/变量/窗口函数)

    文章目录 1. 题目 2. 解题 1. 题目 表: Scores +---------------+---------+ | Column Name | Type | +--------------- ...

  3. 数据产品经理从零到一:数据产品能力模型构建

    本文为PMCAFF专栏作者田宇洲出品 笔者正在由电商产品经理转型数据产品经理,为了提升自己学习的效率,尝试以这种输出驱动输入的模式,将自己学习的思路和学习内容分享给大家,也希望可以与其他数据产品经理多 ...

  4. 产品创新必备方法论:国外系统的产品创新

    本文为PMCAFF专栏作者牛奶0727出品 历时半年,两个产品创新设计的studio,和一群讲着意式英语的老师学生,我到底学到了些什么? 先来个官方课程目标: 学习创新产品设计是为了掌握一种可以明确知 ...

  5. 电脑系统哪个最好用_袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐...

    原标题:袪痘袪痘印哪个产品最好 祛痘印最好用的产品十大推荐 痘痘下去了,痘印却顽固不化.有些痘印如果不及时修复,会留下疤痕和坑.我们真的不敢去想他们.所以有痘印痘印的时候一定要及时使用护肤品,不要在脸 ...

  6. 【SaaS播客】onboard4. 连线硅谷顶尖Product-Led Growth公司产品经理,聊聊如何打造一流PLG产品

    作为一个产品经理,在我的日常工作中,在Jira.Confluence(都是Atlassian的产品).Postman.Zoom(中国区给代理商之后是腾讯会议)这几个产品上工作的时间估计占近一半,所以能 ...

  7. 2021年烟花爆竹产品涉药复审考试及烟花爆竹产品涉药作业模拟考试

    题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:施工升降机安装拆卸工(建筑特殊工种)考试根据新施工升降机安装拆卸工(建筑特殊工种)考试大纲要求,安全生产模拟考试一点通将施工升降机 ...

  8. 如何购买腾讯云服务器?腾讯云服务器购买教程

    如何购买腾讯云服务器?腾讯云服务器购买教程 如何购买腾讯云服务器?腾讯云服务器如何购买?腾讯云服务器购买有三种方式,一种是直接在活动上买,一种是通过快速配置,最后一种是自定义购买,快速配置没什么意思, ...

  9. 用户体验为什么重要?如何提升产品的用户体验?(写给产品小白)

    近年来"用户体验"被越来越多的提及和讨论,情感化设计,体验式设计,交互设计,UI,UE,UX这些跟用户体验相关的词汇如今也成为了我们谈论产品时的日常用语.确实,产品.用户体验与我们 ...

最新文章

  1. Java并发编程(一)Thread详解
  2. 重磅!Google推出了Python最牛X的编辑器......
  3. 习题8-6 删除字符 (20 分)
  4. 嵌入式多媒体设计7--QDockWidget大小调整及隐藏标题
  5. unity android 启动,Android启动Unity
  6. 使用HttpClient下载网络图片
  7. dell perch330_使用Perch CMS构建快速,可扩展的网站
  8. 中望cad自定义快捷键命令_中望CAD快捷键命令大全
  9. 用逻辑覆盖法设计测试用例 int fun(int x,int y, int z) { if((y>1)(z==0)) {x=x/y} if((y==2)||(x==1)) {x=x+1}
  10. spring扫描出现Annotation-specified bean name 'userService' for bean class [com.test.service.UserService]
  11. 方面级情感分析论文泛读02:Syntax-Aware Aspect-Level Sentiment Classification with Proximity-Weighted Convolution
  12. WiFi信号图标等级计算
  13. 字节流读写文件案例——模拟文件(头像)上传功能
  14. 使用素描图像识别人脸
  15. operator的两种用法
  16. 英语语法第四节(主宾表从句)
  17. golang设计模式——策略模式
  18. 成都天瑞地安:零基础学Java最快捷的7个计划
  19. mysql 视图会走索引吗_MySQL视图索引与存储过程精析-阿里云开发者社区
  20. 论如何提升学习的能力

热门文章

  1. 个人财务管理系统有源码怎么用_微信里的客户怎么管理?用鱼汛微信管理系统...
  2. Django之URLconf路由
  3. django 与 vue 的完美结合
  4. js中innerHTML和innerText jQuery中html()和text()的区别
  5. Linux 信号之mysleep
  6. java spring jdbc_Spring与JDBC支持
  7. Flink中的Time与Window
  8. 深入理解golang 的栈
  9. 鸟哥linux 私房菜
  10. 带日期的bean转为json(bean-JSON)