博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Combine Two Tables 联合两表
阅读量:6656 次
发布时间:2019-06-25

本文共 1325 字,大约阅读时间需要 4 分钟。

 

Table: Person

+-------------+---------+| Column Name | Type    |+-------------+---------+| PersonId    | int     || FirstName   | varchar || LastName    | varchar |+-------------+---------+PersonId is the primary key column for this table.

Table: Address

+-------------+---------+| Column Name | Type    |+-------------+---------+| AddressId   | int     || PersonId    | int     || City        | varchar || State       | varchar |+-------------+---------+AddressId is the primary key column for this table.

 

Write a SQL query for a report that provides the following information for each person in the Person table, regardless if there is an address for each of those people:

FirstName, LastName, City, State

 

LeetCode还出了是来到数据库的题,来那么也来做做吧,这道题是第一道,相对来说比较简单,是一道两表联合查找的问题,我们需要用到Join操作,关于一些Join操作可以看我之前的博客,最直接的方法就是用Left Join来做,根据PersonId这项来把两个表联合起来:

 

解法一:

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

 

在使用Left Join时,我们也可以使用关键Using来声明我们相用哪个列名来进行联合:

 

解法二:

SELECT Person.FirstName, Person.LastName, Address.City, Address.State FROM Person LEFT JOIN Address USING(PersonId);

 

或者我们可以加上Natural关键字,这样我们就不用声明具体的列,MySQL可以自行搜索相同的列:

 

解法三:

SELECT Person.FirstName, Person.LastName, Address.City, Address.State FROM Person NATURAL LEFT JOIN Address;

 

参考资料:

 

 

转载地址:http://ayxto.baihongyu.com/

你可能感兴趣的文章
安装PBX环境
查看>>
Outlook签名设置不完全指北
查看>>
记录mysql insert into on duplicate key update的使用
查看>>
Windows7 文件共享及打印机共享 取消账户密码的办法
查看>>
Linux系统基础-管理之如何在终端上获取Linux命令帮助.
查看>>
play2.0文档-面向java开发者(3)
查看>>
我的友情链接
查看>>
搭建本地yum库
查看>>
make[4]: Entering directory `/home/li/tools/mysql-5.1.72/mysql-test'
查看>>
你,需要时(zi)间(wo)管理
查看>>
[玩系列教程]x版本更改用戶名方法
查看>>
记录一次服务器被***
查看>>
模板机部署系统后的eth0网卡设置
查看>>
Protocol Numbers 协议号文档
查看>>
为什么php的trait不能实现interface
查看>>
【Weblogic干货】瞬间运行正常的weblogic.xml内幕
查看>>
SUSE FTP问题
查看>>
JNCIS翻译文档之------接口
查看>>
Linux mint 16与win7双系统引导
查看>>
Java初学者习题20道
查看>>