sql left join on 多条件_SQL多表查询

ee780bf7dea9388ee93060f42ade85ce.png

一、 表的加法:Union & Union All

8d2efea66e984994961249b75ee8a73c.png

77eaecbdf30edc16cad7d5477cf0c955.png

二、 表的联结:Join

Cross/Inner/Left/Right/Full Join

93594db8a70fedfdcb0ed82f153754c1.png

1. Cross Join

3e3140e23f749467e7149ef0d8121343.png

2. Inner Join…On:查找出同时存在于两张表中的数据所对应的记录

fc2886c6737f0cc22c069205168e6006.png

1db7ba1e467296dec2c5ff60dd8ef237.png

3. Left Join…On:以左边的表为主表,读取出左表中所有需要的数据

6c964a6d91c1b1925b5a325b2ef035e2.png

9c953e7fb63bd8233b19a22c51298b01.png

查找出左表中两表非重复部分的数据记录

6be54979998e061e69d47d86d0513a3d.png

18ddb87731cc6f76eb105c594471842c.png

879c63813b0c3acfdf6fc3eb44aad539.png

4. Right Join…On:以右边的表为主表,读取出右表中所有需要的数据

54d8eba633fb1b36aa9dfdf0db581b97.png

a83ae5f585575c7c023908c1267b8c51.png

9bc2674a0004625d689c8be8a45767f0.png

查找出右表中两表非重复部分的数据记录

0290345142c7a3680029aa8815a44807.png

082ca6218dcec467ededd30dca74e404.png

0d8337133125257f3047d5a0c6ebd4db.png

5. Full Join…On:读取左表和右表中的所有行,有匹配的会进行合并,不匹配的地方填充空值

注意:MySQL不支持全联结。

1aaf58946d76217f637d306fc81702c8.png

8fc0e8d8a7210305d73f17b1e415fb2f.png

7db5ed34edc58d3e9708c7b03c3d8763.png

三、 联结应用案例:使用SQL解决业务问题

f5bc4724f142193f0d1eafcd97397cbb.png

1、 查询所有学生的学号、姓名、选课数、总成绩

b63a860d515f705b47c709d2483f7730.png

fb91844abc9d8dc4d2f43e17df3c8296.png

2、 查询平均成绩大于85的所有学生的学号、姓名、平均成绩

f6b9061de1d42dd30b76224f0ac4853a.png

3、 查询学生的选课情况:学号,姓名,课程号,课程名称

e2ab9be293454cbd6428d4a8f038b1a1.png

6bf9ef791f967a28d36215601eab467c.png

四、 Case表达式:当有多种情况需要条件判断时使用

Else子句可以省略不写,默认为空值,但为了养成良好的SQL书写习惯,建议不要省略。

结尾的end必须写。

Case表达式可以写在SQL的任意一个子句里面。

93058c42790a4c4318a6c39cc6c8bf12.png

1、查询学生每门课程成绩是否及格

23b43ec2dc7d4f156aab9eaa2cfd2b24.png

4663f3eaa82fb196fdfc48732c7ab7a7.png

2、查询每门课程的及格人数和不及格人数

d1d7921b016d364e976d866e014c6213.png

a51b3245dea93a7adc29c1582ea1d803.png

f25c1ff4039b9f446b0600e0cc3994f8.png

3、 分段统计每门课程成绩的人数

35c41072b03b07dd0265f9f561a62167.png

39714cad0c4c1b1c9762ca12235fa908.png

2c343601bc2612d85947b364a73cfeb5.png

五、 网页练习题

https://sqlzoo.net/wiki/The_JOIN_operation

805d71521dc8c4a812381605e9d1b0ec.png

9c9af715714aa982908695e8c4faa033.png

9daecca1ec19a9579d21e486c26c17bc.png

9e1d97ee9f81e35a02d8a1f397ee7129.png

8795787412f3320aadec67904b3969ab.png

5ee7b9a21c8662dcae3a2275466bb2ee.png

2ecc6f19a6d5dbe1efb32111a7f9f87e.png

f5354049c0677ec835bb6510a223f622.png

701504b45dc2384defb29138241c4ae5.png

fd31b24356feea434cfbfc91bd18abbb.png

87968a1be90c0874864797704b2d3a38.png

471e6a48d0e31b493d2e7b2282a0f834.png

7ca0a2c71f868951e63984dd3c8823b6.png
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值