博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【sql】合并两张表 Combine Two Tables
阅读量:6517 次
发布时间:2019-06-24

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

  hot3.png

问题:

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

解决:

① 数据库的题,是一道两表联合查找的问题,我们需要用到Join操作,最直接的方法就是用Left Join来做,根据PersonId这项来把两个表联合起来。1596ms。

SELECT Person.FirstName,Person.LastName,Address.City,Address.State 

From Person LEFT JOIN Address ON Person.PersonId = Address.PersonId;

② 在使用Left Join时,我们也可以使用关键Using来声明我们想用哪个列名来进行联合。966ms。

SELECT Person.FirstName,Person.LastName,Address.City,Address.State 

From Person LEFT JOIN Address USING(PersonId);

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

SELECT Person.FirstName,Person.LastName,Address.City,Address.State 

From Person NATURAL LEFT JOIN Address;

转载于:https://my.oschina.net/liyurong/blog/1570493

你可能感兴趣的文章
ASM - ByteCode插件下载、安装以及相关遇到的问题
查看>>
java如何获取当前时间以及如何进行格式化?
查看>>
简单排序:冒泡、选择、插入
查看>>
项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧
查看>>
辍学大学生入店抢劫“苹果”
查看>>
周粼:不建议单独做移动应用开发 要培养自己的团
查看>>
[转载] Jack intelligent agents-components for intelligent agents in java
查看>>
[转载] New Concept English 1——Lesson 13 A new dress
查看>>
[转载] 武汉天河机场大巴时刻及路线
查看>>
maven常用命令
查看>>
公用分页查询的存储过程
查看>>
MySQL中批量执行SQL语句
查看>>
完成登录与注册页面的前端
查看>>
vue中父组件使用props或者$attras向子组件中传值
查看>>
4、MySQL 申明变量给查询数据编号
查看>>
动态规划(DP),Human Gene Functions
查看>>
java 观察者模式
查看>>
安装Hadoop系列 — 安装JDK-8u5
查看>>
每日一个机器学习算法——正则化
查看>>
解决Chrome浏览器自动记录用户名和密码的黄色背景问题和该解决方法与tab切换至下一个input冲突的问题。...
查看>>