题目:

表: Person

表: Address

编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空  null 。

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例 1:

输入以下两个表,然后进行输出

解释:
地址表中没有 personId = 1 的地址,所以它们的城市和州返回 null。
addressId = 1 包含了 personId = 2 的地址信息。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/combine-two-tables
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

一看上面的示例,就可以看出需要联合两个表进行关联查询:

  • 查询的字段在两个表都有,selct后面的字段应该和结果表一致,故应该写作:select firstName, lastName, city, state
  • 有人没有地址信息,但是要查询所有的人,需要保留Person表中的信息,因此需要用到左连接;
  • 两个表通过personId产生联结。

MySQL语句:

1 # Write your MySQL query statement below
2 select firstName, lastName, city, state
3 from person left join Address
4 on person.personId = Address.personId;

 小知识:

1.多表联结:

  • 左联结(left join):保留左表的全部数据;
  • 右联结(right join):保留右表的全部数据;
  • 内联结(inner join):取两表的公共数据;

2.on和where区别:

① 先执行on,后执行where;

②on是建立关联关系在生成临时表时候执行,where是在临时表生成后对数据进行筛选的。比如两个表进行left join连接查询结果,where会对查询的结果进行过滤, on会返回驱动表的所有数据。

③left join时,不管on条件是否成立,左表的所有行数据都会select出来(不管右表条件是否成立),右表成立就select对应数据,不成立就置null。有可能是一对多。

④当两张表是在left join来关联时,条件跟在on后面:无论on条件是否成立,都会返回左表的值;

⑤当两张表是在left join来关联时,当条件放在where后面时:只有满足条件的记录会返回。

力扣175(MySQL)-组合两个表(简单)的更多相关文章

  1. mysql 组合两张表

    select P.FirstName,P.Lastname,A.City,A.State from Person P left join Address A on P.PersonId = A.Per ...

  2. SQK Server实现 LeetCode 175 组合两个表

    175. 组合两个表 SQL架构 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | Person ...

  3. MySQL比较两个表不同的数据

    在本教程中,您将学习如何比较两个表以找到不匹配的记录. 在数据迁移中,我们经常需要比较两个表,以便在一个表中标识另一个表中没有相应记录的记录. 例如,我们有一个新的数据库,其架构与旧数据库不同.我们的 ...

  4. mysql关联两张表时的编码问题

    Mysql关联两张表时,产生错误提示Illegal mix of collations 1.先用工具把数据库.两张表的编码方式改变 2.这步很重要,需要改变字段的编码方式. ALTER TABLE ` ...

  5. LeetCode:175.组合两个表

    题目链接:https://leetcode-cn.com/problems/combine-two-tables/ 题目 表1: Person +-------------+---------+ | ...

  6. 力扣 —— Two Sum ( 两数之和) python实现

    题目描述: 中文: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利 ...

  7. MySQL实现两张表数据的同步

    有两张表A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录.两张表的结构不同,需要将其中几个字段对应起来.可以用下面的触发器实现. 表A的触发 ...

  8. mysql 查询 两个表中不同字段的 和,并通过两个表的时间来分组

    ( SELECT sum( a.cost_sum ) AS sum_cost, sum( a.phone_sum ) AS sum_phone, sum( a.arrive_sum ) AS sum_ ...

  9. mysql 查两个表之间的数据差集

    需要查两个表之间的差集 首先,想到的是主键直接not in select mailbox_id from co_user where mailbox_id not in (select mailbox ...

  10. mysql 对比两个表的一致性

    -- A和B两个表 数据是否一致select 自定义 from A left join B on A.id = B.id where B.id is null 注释:这样查询的结果是A表中有而B表中没 ...

随机推荐

  1. C#中的MySqlHelper工具类及使用方法

    工具类 工具类转自C# MysqlHelper C#连接mysql数据库类库全,代码如下: using MySql.Data.MySqlClient; using System; using Syst ...

  2. [【stars-one】Android图标生成器 PC工具

    原文: [stars-one]Android图标生成器 - Stars-One的杂货小窝 一款Android开发者的PC工具软件,可以快速生成android开发需要使用的xml矢量图标文件 起因 个人 ...

  3. 后端基础PHP—PHP表单验证

    后端基础PHP-PHP表单验证 1.PHP表单 2.PHP连接MySQL 一.PHP表单介绍 关于表单 PHP表单,在网页中主要负责采集数据 通俗理解,在银行办业务需要填一张纸质的表,需要向表上填信息 ...

  4. Feign调用远程服务时传递Cookie信息

    @Configuration public class TtpfFeignConfig { @Bean public RequestInterceptor requestInterceptor(){/ ...

  5. 数据结构-Hash常见操作实践

    数据结构-Hash常见操作实践 目录介绍 01.什么是哈希算法 02.哈希算法的应用 03.安全加密的场景 04.唯一标识的场景 05.数据校验的场景 06.散列函数的场景 07.Git版本的控制 0 ...

  6. B站框框老师+宋浩老师概率论视频课笔记,宋浩老师数理统计视频课笔记

    只做理解类记录,哪个知识点忘了去看视频.前四章是概率,看的框框老师. 概率论 1.随机试验:可重复性.可预知性.不确定性 2.样本空间:随机试验E的所有可能结果,记为S或Ω 3.样本点:样本空间中的每 ...

  7. Chrome浏览器:The request client is not a secure context and the resource is in more-private address ...

    1.概述 新版的chrome浏览器会校验发起端的域名和访问资源的域名直接的关系,如果客户端发起域名比访问资源所在的域名更public(开放),会导致The request client is not ...

  8. FastJson反序列化3-1.2.25绕过

    在1.2.25中,主要添加了config.checkAutoType(typeName, null)函数,所以从这里开始查看检查逻辑: 为了方便,先看POC: public void byPass1( ...

  9. read IEEE Standard for verilog(1)

    IEEE Standard for Verilog Hardware Description Language 英语说明阅读,首先看导读.目录.摘要等内容. 摘要: 1 Abstract: The V ...

  10. KingbaseES 优化之sql优化方法

    金仓数据库在sql层面提供了多种优化手段,但是这些的前提时需要保证我们的统计信息准确,优化器已经在正确信息下选择了它认为的最优的执行计划, 优化手段包括 •使用索引 索引解决的问题用于在进行表的扫描时 ...