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后填写。

posted @ 2024-02-04 13:42  米乡卷炸粉  阅读(18)  评论(0)    收藏  举报