终于想到一个好记的例子,通俗理解join on、left join on、right join on、full join on

生活场景一:
夫妻两个人买东西,他要买衣服、车子、可乐,她要买衣服、可乐、房子、鲜花,谁说了算?
Left join 男的说了算,right join 女的说了算,(inner)join两人商量办,full join都买!
表结构如下:
在这里插入图片描述 在这里插入图片描述
查询语句:
select * from He_buy ________ join She_buy on He_buy.P_id=She_buy.P_id
查询结果:
在这里插入图片描述
生活场景二:学生成绩系统
查询语句:
select * from student ______join score on student.S#=score.S#
(学生信息表student,成绩表score,S#是学号)

  1. JOIN: 如果表中有至少一个匹配,则返回行(inner join)。例如返回有学号的、并且参加了考试的学生信息+分数表
  2. LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行。例如返回全部学生的成绩,不管是否参加了考试
  3. RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行。例如返回全部的成绩情况,不管成绩是否挂钩了学生的学号
  4. FULL JOIN:只要其中一个表中存在匹配,就返回行。例如返回全部学生和成绩,不管学生是否参加考试,也不管不管成绩是否挂钩了学生的学号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值