力扣 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链接