图解SQL面试题:如何多表查询 ?

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

经验分享 程序员 微信小程序 职场和发展