Mlog7: LeetCode --组合两个表

image

学习Mysql ,每日做一道数据库题目,文章仅用做做题记录用途。--章记

文章目录:

  1. 题目要求--分析
  2. 具体实现--动手
  3. 结果
  4. 知识拓展
  5. 总结

1. 题目要求--分析

表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

分析:
1、选取表格中的部分数据,用SELECT(用于从数据库中选取数据);
2、涉及两个表格,用JOIN (用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段);
3、无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息,用LEFT JOIN(LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行);

2. 具体实现--动手

# Write your MySQL query statement below
select Person.FirstName,Person.LastName,Address.City,Address.State
from Person 
left join Address 
on Person.PersonId=Address.PersonId

3. 结果

image

4. 知识拓展

INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行

5. 总结

我希望自己的大脑像 CPU 一样处理日常事物,每一件事就像一个进程,当我 focus on 一件事时,大脑被这件事完全占据,当进程由于外部资源限制被停滞时可以回到等待队列。但我希望每一件事都是按照最快时间去处理进入完成队列,每件事都尽可能少的出现在等待队列,这样每天就会好快活。

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

相关阅读更多精彩内容

友情链接更多精彩内容