日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時間:2024/7/5 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode MySQL 1398. 购买了产品A和产品B却没有购买产品C的顾客 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 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" 產(chǎn)品顧客的id。

請你設計 SQL 查詢來報告購買了產(chǎn)品 A 和產(chǎn)品 B 卻沒有購買產(chǎn)品 C 的顧客的 ID 和姓名( customer_id 和 customer_name ),我們將基于此結(jié)果為他們推薦產(chǎn)品 C 。

您返回的查詢結(jié)果需要按照 customer_id 排序。

查詢結(jié)果如下例所示。

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 的顧客購買了產(chǎn)品 A 和產(chǎn)品 B ,卻沒有購買產(chǎn)品 C 。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/customers-who-bought-products-a-and-b-but-not-c
著作權(quán)歸領扣網(wǎng)絡所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2. 解題

  • 注意 having 后面要用聚合函數(shù)做判斷,不能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阿明),一起加油、一起學習進步!

總結(jié)

以上是生活随笔為你收集整理的LeetCode MySQL 1398. 购买了产品A和产品B却没有购买产品C的顾客的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。