《学习MySQL语句》——第二天

本文介绍了数据库查询中的四种连接类型:内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)和全外连接(FULLOUTERJOIN),以及ON和WHERE子句在连接查询中的区别。ON条件用于生成临时表,而WHERE则在临时表生成后进行过滤。LEFTJOIN确保返回左表的所有记录,即使在右表中没有匹配项。
摘要由CSDN通过智能技术生成

#从题中可知,必须有Person表的数据,Address的数据有没有没关系,所以是要用外连接
select Person.firstName, Person.lastName, Address.city, Address.state 
from Person left join Address
on   Person.PersonId = Address.PersonId ;
inner join:2表值都存在

outer join:附表中值可能存在null的情况。

总结:

1.A inner join B:取交集

2.A left join B:取A全部,B没有对应的值,则为null

3.A right join B:取B全部,A没有对应的值,则为null

4.A full outer join B:取并集,彼此没有对应的值为null

上述4种的对应条件,在on后填写。

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:

1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值