LeetCode【175. 组合两个表】

博客围绕一道涉及数据库SQL语句的题目展开,作者起初遗忘相关知识,参考他人代码后了解思路。题目需从两表选取FirstName、LastName等属性,采用LEFT JOIN...ON...进行表连接,因要输出左表元素,即使右表无对应,故用左连接,通过PersonId连接两表。

这道题是涉及数据库SQL语句的,差不多有点忘了,看了看其他人的代码,大概了解其中的思路,还是要好好学学数据库。

SELECT p.FirstName,p.LastName,a.City,a.State FROM Person p 
LEFT JOIN Address  a ON p.PersonId = a.PersonId

这里题目需要FirstName,LastName,City,State,所以我们就要select这些属性,但是,他们又不是一个表里面的,所以,我们要链接两表,

采用了LEFT JOIN ... ON ...,至于为什么选左连接,表中是通过PersonId查找的,而题中说即使PersonId在Address表中没有对应,也要输出上述属性,

那么,LEFT JOIN就是左关联,就是即使左表Person中有元素,而右表Address中没有也会输出,同时ON后面就是通过什么连接,就是PersonId,

至于前面的p,a就是代表的各自表。p.FirstName,p.LastName就是Person表中的FirstName,LastName,而a.City,a.State就是指Address表中的City,State。

转载于:https://www.cnblogs.com/wzwi/p/10892312.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值