【SQL思考记录】力扣175. 组合两个表

SQL实现

# Write your MySQL query statement below
# 姓、名、城市和州,即last name, first name, City, State

SELECT FirstName, LastName, City, State
FROM Person left join Address
ON Person.PersonId = Address.PersonId;

SQL解释

  1. SELECT FirstName, LastName, City, State: 这部分指定了查询要返回的列。这里选择了Person表中的FirstNameLastName列,以及Address表中的CityState列。

  2. FROM Person: 这个命令指定了主表,即查询的起点是Person表。

  3. LEFT JOIN Address: 这里用到了LEFT JOIN。这意味着我们要将Person表(左表)和Address表(右表)进行连接。LEFT JOIN的特点是它会从左表(Person)返回所有的行,即使在右表(Address)中没有匹配的行。

  4. ON Person.PersonId = Address.PersonId: ON关键字后面的表达式定义了如何连接这两个表。在这个例子中,我们使用PersonId这个字段来连接Person表和Address表。这意味着SQL会查找两个表中PersonId相同的行,然后将它们的数据合并在一起返回。

总结起来,这个SQL语句的目的是从Person表中获取所有人的名字和姓氏,并从Address表中获取与每个人匹配的城市和州名。如果某个人在Address表中没有对应的地址信息,那么CityState这两列就会显示为NULL或空值。这是因为LEFT JOIN确保了左表(Person)的所有行都会被返回,无论是否在右表(Address)中找到匹配的行。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值