当前位置:   article > 正文

MySQL中的join连接与left join_mysql join和left join

mysql join和left join

join 连接:
表stu:

idnameclassid
1A1
2B1
3C2
4D2
5E1

表class:

idnamemanage
1chaolimei
2mayxingxing

stu join class (等于新生成一个表)
所有的列都要放一块,第一个表里面的一行和第二个表里面的数据都要做一个集合。上面俩表共生成10条数据。。
(笛卡尔积)

以前是from 表
from 表join表(这是一个表)
from 表join表 on 条件(on等于一个过滤条件 例子:id=class.id)

left join 与join的区别
①.left join必须有on条件
②.会检查左边表的数据是否都包含在新生成的表中,如果是都包含,与join没有区别,如果不是,用NULL不包含的行组成新行,加入新表。
③.left join左右两边的表不能交换。
④.A right join B=B left join A

多表连接
A、B、C都为表

用join的时候
A join B
join C
join D
的意思就是A和B连接的结果连接C,连接C完毕的结果再连接D。
也可以写成(A join B on)join (C join D on) on
用left join的时候
A left join B on left join C on

什么时候用join,什么时候用left join ??
表stu:

idnameclassid
1A1
2B1
3C2
4D2

表class:

idnamemanage
1chaolimei
2mayxingxing

查询i学生A的班主任名称。
stu join class on classid =class.id where stu.name=“A”

当表class中,第二行不存在时:查询那些同学目前是没有班的:
select stu.id from stu left join class on classid=class.id where class.id =NULL

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/793067
推荐阅读
相关标签
  

闽ICP备14008679号