leetcode 第175题:组合两个表
leetcode 数据库
第175题:组合两个表
因为表 Address 中的 personId 是表 Person 的外关键字,所以我们可以连接这两个表来获取一个人的地址信息。
考虑到可能不是每个人都有地址信息,我们应该使用 outer join 而不是默认的 inner join。
如果没有某个人的地址信息,使用 where 子句过滤记录将失败,因为它不会显示姓名信息。
select FirstName, LastName, City, State
from Person left join Address
on Person.PersonId = Address.PersonId
;
即使用以下sql语言无法查出值为null
select p.firstName,p.lastName,a.city,a.state from Person p ,Address a where p.PersonId = a.PersonId
总结:
inner join:2表值都存在
outer join:附表中值可能存在null的情况。
总结:
①A inner join B:取交集
②A left join B:取A全部,B没有对应的值,则为null
③A right join B:取B全部,A没有对应的值,则为null
④A full outer join B:取并集,彼此没有对应的值为null
上述4种的对应条件,在on后填写。
浙公网安备 33010602011771号