力扣 SQL175题
题目:
表1:person
| personid | firstname | lastname |
| 1 | jia | duan |
| 2 | san | zhang |
| 3 | si | li |
表二:address
| addressid | personid | city | state |
| 1 | 1 | 山西 | 1 |
| 2 | 3 | 北京 | 1 |
问题:无论person是否有地址信息,都需要基于上述两表提供person一下信息:
firstname,lastname,city ,state
【解题思路】
1、确定查询结果,题目要求查询firstname,lastname,city,state, 发现firstname,lastname是perison表,city,state是address表,那也就是需要我们查两个表的数据。需要联查------但用什么类型呢??
多表联查类型:
left join (左联查): 保留左表的全部数据,然后右边显示的是和左边有交集部分的数据;
right join(右联查):保留右表的全部数据,然后左边显示的是和右边有交集部分的数据;
inner join(内联查):保留两表交集的数据;
2、要查无论person有么有地址,都要查到这些person的信息,所以要查到person的信息,然后查到address和person的交集,,确定用left join;
所以:sql语句
select firstanme,lastname,city,state from person left join address on person.personid=address.personid
一张图搞懂join链接

力扣SQL175题解析,通过LEFT JOIN查询person表和address表,确保即使person没有地址信息也能获取其firstname, lastname, city, state。解题关键在于使用LEFT JOIN保留所有person数据,并匹配address中的相关信息。
556

被折叠的 条评论
为什么被折叠?



