资讯专栏INFORMATION COLUMN

【Leetcode】175. 组合两个表

Cobub / 991人阅读

摘要:数据库会以左边为基础,与右边表做笛卡尔乘积。或左连接左向外联接的结果集包括子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。将返回右表的所有行。如果表之间有匹配行,则整个结果集行包含基表的数据值。

题目

表1: Person

+-------------+---------+
| 列名         | 类型     |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+

PersonId 是上表主键

表2: Address

+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
AddressId 是上表主键

编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:

FirstName, LastName, City, State
题解

由于FirstName, LastName, City, State 来自两个不同的 table, 所以要用join。由于要求必须显示人名,即使没有地址相关信息,说明要用LEFT JOIN。左连接即是将左边表中的数据全部查找出来。数据库会以左边为基础,与右边表做笛卡尔乘积。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

select FirstName, LastName, City, State
from Person left join Address on Person.PersonId=Address.PersonId
LEFT JOIN或LEFT OUTER JOIN 左连接

左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

RIGHT JOIN 或 RIGHT OUTER JOIN 右链接

右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

FULL JOIN 或 FULL OUTER JOIN 全联接

完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

热门阅读

服务端开发95th 99th 是什么意思?

【缓存】缓存穿透、缓存雪崩、缓存击穿

学习资料推荐

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44863.html

相关文章

  • Leetcode175. 组合两个

    摘要:数据库会以左边为基础,与右边表做笛卡尔乘积。或左连接左向外联接的结果集包括子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。将返回右表的所有行。如果表之间有匹配行,则整个结果集行包含基表的数据值。 题目 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | P...

    williamwen1986 评论0 收藏0
  • Leetcode PHP题解--D91 175. Combine Two Tables

    摘要:题目链接题目分析这个题目比较简单,就是简单的连表查询。思路以表为出发点,于表。最终代码若觉得本文章对你有用,欢迎用爱发电资助。 D91 175. Combine Two Tables 题目链接 175. Combine Two Tables 题目分析 这个题目比较简单,就是简单的连表查询。 思路 以person表为出发点,于address表join。join依据是personId。 最...

    Snailclimb 评论0 收藏0

发表评论

0条评论

Cobub

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<