组合两个表
两个 组合
2023-09-11 14:15:14 时间
表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
示例代码:
select FirstName,LastName,City,State from Person as P left join Address as A on P.PersonId=A.PersonId
思路解析:
因为表 Address 中的 personId 是表 Person 的外关键字,所以我们可以连接这两个表来获取一个人的地址信息。
考虑到可能不是每个人都有地址信息,我们应该使用 outer join 而不是默认的 inner join。
注意:如果没有某个人的地址信息,使用 where
子句过滤记录将失败,因为它不会显示姓名信息。
相关文章
- SQK Server实现 LeetCode 175 组合两个表
- (剑指Offer)面试题41:和为s的两个数字
- PCL 点云合并(两个点云中的数据或字段连接)
- 比较两个DataTable内容是否相等,先是比数量,数量相等就比内容
- emWin表盘界面设计,含uCOS-III和FreeRTOS两个版本
- PHP面试题:合并两个数组有几种方式,试比较它们的异同
- 从安全和不安全两个角度,教你如何发布对象(含各种单例代码)
- 583. 两个字符串的删除操作-动态规划
- 习题 10.2 定义一个复数类Complex,重载运算符+,-,*,/,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编程序,分别求两个复数之和、差、积和商。
- 习题 10.1 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。
- Linux linux echo命令的-n、-e两个参数
- 认真学习了两个月Python,去面试后突然发现。。。
- 不使用加减乘除法,完成两个数的加法
- python学习===判断两个日期的间距天数
- 力扣-组合两个表