Leetcode175.组合两个表(简单)

表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

审题:一看就是两表联结,但是是外连接还是内连接呢? 题目要求无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息。显然是外连接

自己的解答:

select p.FirstName, p.LastName, a.City, a.State
from Person p
left outer join Address a
on p.PersonId = a.PersonId;

第一次提交报错因为;;写错了。。。
别的还是很简单的 毕竟第一题。

题解

DROP DATABASE test;

删库跑路大法好

多表的联结又分为以下几种类型:

1)左联结(left join),联结结果保留左表的全部数据

2)右联结(right join),联结结果保留右表的全部数据

3)内联结(inner join),取两表的公共数据

最下边两种mysql不支持,只是作为补充说明

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容