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

力扣 SQL175题

题目:

表1:person

personidfirstnamelastname
1jiaduan
2sanzhang
3sili

   表二:address

addressidpersonidcitystate
11山西1
23北京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链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值