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

文章目录

    • 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阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 网络编程(二) 两类传输协议:TCP UDP

两类传输协议:TCP,UDP TCP TCP是Transfer Control Protocol(传输控制协议)的简称,是一种面向连接的保证可靠传输的协议。 在TCP/IP协议中, IP层主要负责网络主机的定位,数据传输的路由,由IP地址…

LeetCode MySQL 1285. 找到连续区间的开始和结束数字(dense_rank连续排名)

文章目录1. 题目2. 解题1. 题目 表:Logs ------------------------ | Column Name | Type | ------------------------ | log_id | int | ------------------------ id 是上表的主键。 上表的每一行包含日志表中的一个 ID。后来一些 ID 从 Logs 表…

LeetCode MySQL 1440. 计算布尔表达式的值(case when then else end)

文章目录1. 题目2. 解题1. 题目 表 Variables: ------------------------ | Column Name | Type | ------------------------ | name | varchar | | value | int | ------------------------ name 是该表主键. 该表包含了存储的变量及其对应的值.表…

AjaxControlToolkit AjaxFileUpload 为英文的解决办法

下载AjaxControlToolkit的源代码 在ajaxcontroltoolkit-a2a6dc6854e0\Client\MicrosoftAjax.Extended\ExtenderBase\BaseScriptsResources.zh-CHS.resx里按照例子 如下修改 <data name"AjaxFileUpload_SelectFile" xml:space"preserve"> <val…

LeetCode MySQL 1341. 电影评分

文章目录1. 题目2. 解题1. 题目 表&#xff1a;Movies ------------------------ | Column Name | Type | ------------------------ | movie_id | int | | title | varchar | ------------------------ movie_id 是这个表的主键。 title 是电影的名字…

sklearn 机器学习 Pipeline 模板

文章目录1. 导入工具包2. 读取数据3. 数字特征、文字特征分离4. 数据处理Pipeline5. 尝试不同的模型6. 参数搜索7. 特征重要性筛选8. 最终完整Pipeline使用 sklearn 的 pipeline 搭建机器学习的流程 本文例子为 [Kesci] 新人赛 员工满意度预测 参考 [Hands On ML] 2. 一个完整…

SQL Server 批量插入数据的两种方法

在SQL Server 中插入一条数据使用Insert语句&#xff0c;但是如果想要批量插入一堆数据的话&#xff0c;循环使用Insert不仅效率低&#xff0c;而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法&#xff1a;Bulk和表值参数(Table-Valued Parameters…

LeetCode MySQL 1532. The Most Recent Three Orders(dense_rank + over窗口函数)

文章目录1. 题目2. 解题1. 题目 Table: Customers ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | ------------------------ customer_id is the primary key for this table. T…

Dota改键

利用全局钩子 制作一个个性化的dota游戏改键&#xff01; dll部分&#xff1a; // FileName: add.cpp#include <Windows.h>/* 定义全局变量 */ HWND g_hwnd NULL; HHOOK g_hKeyboard NULL;// 设置数据段 #pragma data_seg("MySec") static WORD g_keyNum[6]{…

LeetCode MySQL 1501. 可以放心投资的国家

文章目录1. 题目2. 解题1. 题目 表 Person: ------------------------- | Column Name | Type | ------------------------- | id | int | | name | varchar | | phone_number | varchar | ------------------------- id 是该表主键. 该表…

LeetCode MySQL 1270. 向公司CEO汇报工作的所有人

文章目录1. 题目2. 解题1. 题目 员工表&#xff1a;Employees ------------------------ | Column Name | Type | ------------------------ | employee_id | int | | employee_name | varchar | | manager_id | int | ------------------------ employee_…

LeetCode MySQL 570. 至少有5名直接下属的经理

文章目录1. 题目2. 解题1. 题目 Employee 表包含所有员工和他们的经理。 每个员工都有一个 Id&#xff0c;并且还有一列是经理的 Id。 ------------------------------------- |Id |Name |Department |ManagerId | ------------------------------------- |101 |John…

LeetCode MySQL 1132. 报告的记录 II

文章目录1. 题目2. 解题1. 题目 动作表&#xff1a; Actions ------------------------ | Column Name | Type | ------------------------ | user_id | int | | post_id | int | | action_date | date | | action | enum | | extra…

java封装省市区三级json格式,微信开发 使用picker封装省市区三级联动模板

目前学习小程序更多的是看看能否二次封装其它组件&#xff0c;利于以后能快速开发各种小程序应用。目前发现picker的selector模式只有一级下拉&#xff0c;那么我们是否可以通过3个picker来实现三级联动模板的形式来引入其它页面中呢&#xff1f;答案是肯定可以的。那么我的思路…

LeetCode MySQL 1126. 查询活跃业务

文章目录1. 题目2. 解题1. 题目 事件表&#xff1a;Events ------------------------ | Column Name | Type | ------------------------ | business_id | int | | event_type | varchar | | occurences | int | ------------------------ 此表的主键是…

php linux 删除文件夹,linux下如何删除文件夹

linux下删除文件夹的方法&#xff1a;可以使用【rm -rf 目录名】命令进行删除&#xff0c;如【rm -rf /var/log/httpd/access】&#xff0c;表示删除/var/log/httpd/access目录及其下的所有文件、文件夹。直接rm就可以了&#xff0c;不过要加两个参数-rf 即&#xff1a;rm -rf …

LeetCode 1533. Find the Index of the Large Integer(二分查找)

文章目录1. 题目2. 解题1. 题目 We have an integer array arr, where all the integers in arr are equal except for one integer which is larger than the rest of the integers. You will not be given direct access to the array, instead, you will have an API Array…

MySQL Server Architecture

MySQL 服务器架构&#xff1a; 转载于:https://www.cnblogs.com/macleanoracle/archive/2013/03/19/2968212.html

LeetCode MySQL 1479. 周内每天的销售情况(dayname星期几)

文章目录1. 题目2. 解题1. 题目 表&#xff1a;Orders ------------------------ | Column Name | Type | ------------------------ | order_id | int | | customer_id | int | | order_date | date | | item_id | varchar | | quantity …

php的swoole教程,PHP + Swoole2.0 初体验(swoole入门教程)

PHP Swoole2.0 初体验(swoole入门教程)环境&#xff1a;centos7 PHP7.1 swoole2.0准备工作&#xff1a;一、 swoole 扩展安装1 、下载swoolecd/usr/localwget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gztar -zxvf v2.0.8.tar.gzcdswoole-src-2.0.8/2 编…