终于想到一个好记的例子,通俗理解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:只要其中一个表中存在匹配,就返回行。例如返回全部学生和成绩,不管学生是否参加考试,也不管不管成绩是否挂钩了学生的学号
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
left join on和left join on and是用来进行左连接操作的两种方式。 left join on是指在左连接操作时,通过on关键字对右表进行条件过滤,但是依旧会返回左表的所有内容,右表不满足on条件的记录会被置为null。 left join on and是在左连接操作时,通过on关键字对右表进行条件过滤,并且返回左表的所有内容,右表不满足on条件的记录会被置为null。同时,通过and关键字再添加where条件对临时表中的记录进行进一步过滤。这样可以实现更加精细的筛选和过滤操作。 所以,left join on和left join on and都是用来进行左连接操作的,但是left join on and可以在连接的同时进行更加细致的条件过滤。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MySQLleft join的on、and和where的区别(通俗易懂)](https://blog.csdn.net/HJW_233/article/details/126531164)[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_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [left join 中 的on的使用和on后加where 和 and 的区别](https://blog.csdn.net/weixin_63610637/article/details/129925850)[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_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值