mysql task04

这篇博客详细介绍了如何使用SQL查询来找出`product`和`product2`表中售价高于500的商品,计算两表的交集,以及获取每个商品类型中售价最高的商品在哪些商店的销售信息。通过内连结和关联子查询等方法,展示了SQL在数据操作中的灵活性和实用性。
摘要由CSDN通过智能技术生成

#4.1 找出 product 和 product2 中售价高于 500 的商品的基本信息。

SELECT * FROM product
WHERE sale_price > 500
UNION
SELECT * FROM product2
WHERE sale_price > 500;

#4.2 借助对称差的实现方式, 求product和product2的交集。

SELECT * FROM
(SELECT * FROM product
UNION
SELECT * FROM product2) AS p1
WHERE product_id NOT IN
(SELECT product_id FROM
(SELECT * FROM Product
WHERE product_id NOT IN (SELECT product_id FROM Product2)
UNION
SELECT * 
FROM Product2
WHERE product_id NOT IN (SELECT product_id FROM Product)) AS p2);

#4.3 每类商品中售价最高的商品都在哪些商店有售 ?
#关键点:内连结会丢弃两张表中不满足 ON 条件的行。
#step1 找出售价最高的商品

SELECT * FROM product AS p
JOIN (SELECT product_type, MAX(sale_price) AS max_price
FROM product 
GROUP BY product_type) AS p2
ON p.product_type = p2.product_type
WHERE p.sale_price = max_price;

#step2 嵌套进行连结(包含step1)

SELECT shop_id, shop_name, product_name, sale_price, p3.product_id
FROM shop_product
JOIN
(SELECT product_id, product_name, sale_price
FROM product AS p
JOIN (SELECT product_type, MAX(sale_price) AS max_price
FROM product
GROUP BY product_type) AS p2
ON p.product_type = p2.product_type
WHERE p.sale_price = max_price) AS p3
ON shop_product.product_id = p3.product_id;

#4.4 分别使用内连结和关联子查询每一类商品中售价最高的商品。
#法一、内连结

SELECT p.product_id, p.product_name, p.product_type, p.sale_price 
FROM product AS p
JOIN (SELECT product_type, MAX(sale_price) AS max_price
FROM product 
GROUP BY product_type) AS p2
ON p.product_type = p2.product_type
WHERE p.sale_price = max_price;

#法二、关联子查询

SELECT p.product_id, p.product_name, p.product_type, p.sale_price
FROM product AS p
WHERE sale_price = (SELECT MAX(sale_price) FROM product AS p2
WHERE p.product_type = p2.product_type
GROUP BY product_type);

 

#4.5 用关联子查询实现:在 product 表中,取出 product_id, product_name, sale_price, 并按照商品的售价从低到高进行排序、对售价进行累计求和。

SELECT p.product_id, p.product_name, p.product_type, p.sale_price,
(SELECT SUM(sale_price) FROM product AS p2
WHERE p.sale_price > p2.sale_price 
OR (p.sale_price = p2.sale_price AND p.product_id >= p2.product_id)) AS 累计
FROM product AS p
ORDER BY sale_price;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Ubuntu 22.04上卸载MySQL,您可以按照以下步骤进行操作: 1. 首先,使用以下命令卸载与MySQL相关的依赖项: ```shell sudo apt remove --purge mysql-* sudo apt autoremove ``` 这将卸载MySQL及其相关组件。 2. 接下来,您可能需要编辑MySQL的配置文件以确保完全移除。您可以使用以下命令打开配置文件: ```shell sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf ``` 在打开的文件中,您可以查看和修改MySQL的配置。 3. 如果在卸载过程中提示释放空间并一直按下"y"键以清除依赖组件,您可以使用以下命令: ```shell dpkg --list | grep mysql ``` 这将列出与MySQL相关的所有软件包,然后您可以根据需要选择卸载它们。 请注意,这些步骤将帮助您在Ubuntu 22.04上卸载MySQL。确保在执行任何卸载操作之前备份您的数据,并仔细检查您要删除的软件包,以避免意外删除其他重要文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ubuntu22.04 安装、DataGrip远程连接、卸载 MySQL8.0.33](https://blog.csdn.net/m0_65211223/article/details/130628877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值