【SQL自学打卡|DAY12】——联结表专项学习

发布于:2022-12-20 ⋅ 阅读:(302) ⋅ 点赞:(0)

前言

❤欢迎大家阅读我的文章呀❤

希望你们在我的文章当中能有所收获!!!

SLogan:利用有限的时间,撸起袖子加油干!

知识点回顾

子查询的格式:
题目详情可参考DAY11文章当中的【SQL91】

SELECT cust_id
FROM Orders
WHERE order_num IN (
SELECT order_num
FROM OrderItems
WHERE item_price>=10
)

GROUP BY

必须得配合聚合函数来用,分组之后你可以计数(COUNT),求和(SUM),求平均数(AVG)等。

一、联结表

在这里插入图片描述



【SQL96】返回顾客名称和相关订单号
在这里插入图片描述
在这里插入图片描述

解题思路:
本题我使用的方法是WHERE进行简单的联结,也可以用其他方法。

内联结

SELECT cust_name,order_num
FROM Customers AS A
INNER JOIN Orders AS B
ON A.cust_id=B.cust_id
ORDER BY cust_name,order_num ASC

代码如下:

SELECT cust_name,order_num
FROM Customers AS A,Orders AS B
WHERE A.cust_id=B.cust_id
ORDER BY cust_name,order_num ASC

结果:
在这里插入图片描述

【SQL97】返回顾客名称和相关订单号以及每个订单的总价
在这里插入图片描述
在这里插入图片描述

解题思路:
这个题目主要考查的是多张表的联合查询,所以要分析准确,一步一步慢慢来,不然也会被绕晕。先将简单的SQL语句写出来,再组合成复杂的语句,问题就很容易解决了。
代码如下:

SELECT A.cust_name,B.order_num, SUM(quantity*item_price) AS OrderTotal
FROM Customers As A
LEFT JOIN Orders AS B
ON A.cust_id=B.cust_id
LEFT JOIN OrderItems AS C
ON B.order_num=C.order_num
GROUP BY A.cust_name,B.order_num
ORDER BY A.cust_name,B.order_num ASC

结果:
在这里插入图片描述

【SQL98】 确定哪些订单购买了 prod_id 为 BR01 的产品(二)
在这里插入图片描述
在这里插入图片描述

解题思路:
这是一道简单的表联结问题,顺着题目意思做下来就好啦。没有难度。
代码如下:

SELECT cust_id,order_date
FROM Orders AS B
LEFT JOIN OrderItems AS A
ON A.order_num=B.order_num
WHERE  prod_id='BR01'
ORDER BY order_date

结果:
在这里插入图片描述

【SQL99】返回购买 prod_id 为 BR01 的产品的所有顾客的电子邮件(二)
在这里插入图片描述
在这里插入图片描述

解题思路:
根据题意,采用内联结和筛选即可。
代码如下:

SELECT cust_email
FROM Customers AS C
INNER JOIN Orders AS B
ON B.cust_id=C.cust_id
INNER JOIN OrderItems AS A
ON A.order_num=B.order_num
WHERE  prod_id ='BR01'

结果:
在这里插入图片描述

【SQL100】 确定最佳顾客的另一种方式(二)
在这里插入图片描述
在这里插入图片描述

解题思路:
这题花了较多时间,原因就是出在细节上,因为有三张表,所以很容易弄错,不断排错,仔细检查!

代码如下:

SELECT C.cust_name,SUM(A.item_price*A.quantity) AS total_price 
FROM Customers AS C
INNER JOIN Orders AS B
ON C.cust_id=B.cust_id
INNER JOIN OrderItems AS A
ON A.order_num=B.order_num
GROUP BY cust_name
HAVING SUM(A.item_price*A.quantity) >=1000
ORDER BY total_price ASC

结果:

总结

  今天课比较多,所以现在才更新呀,今天上课的时候我们老师还分了一个云南特产的云腿月饼,第一次碰到,还没吃呢,感觉应该会有惊喜,之前吃过云南的鲜花饼,妈呀,超级好吃,好想去云南!
  今天先更新一个章节的内容,都是一个类型的题目,方便大家参考!
  不懂的问题要及时搞明白,不能得过且过啦!!大家一起加油!
  感谢您宝贵的阅读,关注和点赞噢!❤

本文含有隐藏内容,请 开通VIP 后查看