当前位置: 首页 > news >正文

[力扣sql]

题目

表: Person

+-------------+---------+
| 列名         | 类型     |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+
personId 是该表的主键列。
该表包含一些人的 ID 和他们的姓和名的信息。
 

表: Address

+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+
addressId 是该表的主键列。
该表的每一行都包含一个 ID = PersonId 的人的城市和州的信息。
编写一个SQL查询来报告 Person 表中每个人的姓、名、城市和州。如果 personId 的地址不在 Address 表中,则报告为空  null 。

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例 1:

输入: 
Person表:
+----------+----------+-----------+
| personId | lastName | firstName |
+----------+----------+-----------+
| 1        | Wang     | Allen     |
| 2        | Alice    | Bob       |
+----------+----------+-----------+
Address表:
+-----------+----------+---------------+------------+
| addressId | personId | city          | state      |
+-----------+----------+---------------+------------+
| 1         | 2        | New York City | New York   |
| 2         | 3        | Leetcode      | California |
+-----------+----------+---------------+------------+
输出: 
+-----------+----------+---------------+----------+
| firstName | lastName | city          | state    |
+-----------+----------+---------------+----------+
| Allen     | Wang     | Null          | Null     |
| Bob       | Alice    | New York City | New York |
+-----------+----------+---------------+----------+
解释: 
地址表中没有 personId = 1 的地址,所以它们的城市和州返回 null。
addressId = 1 包含了 personId = 2 的地址信息。

内连接

inner join:A,B表值都存在情况

外连接

outer join:附表中值可能存在null的情况。

外连接又分左外连接和右外连接

左外连接是取A表全部,B表没有对应的值,则为null

右外连接是取B表全部,A表没有对应的值,则为null

inner join,left join,right join,outer join区别

①A inner join B:取交集

②A left join B:取A全部,B没有对应的值,则为null

③A right join B:取B全部,A没有对应的值,则为null

④A full outer join B:取并集,彼此没有对应的值为null

上述4种的对应条件,在on后填写。

答案

select firstName, lastName, city, state from Person 
left join Address on Person.PersonId = Address.PersonId;

http://www.lryc.cn/news/34791.html

相关文章:

  • Docker基本操作
  • golang如何使用rocketmq 附加闭坑指南 建议收藏!!!
  • C++实现的二叉树创建和遍历,超入门邻家小女也懂了
  • 如何写出高质量的业务接口
  • 3.8多线程
  • 图文讲解MongoDB该怎么安装
  • 「ML 实践篇」机器学习项目落地
  • c++面试技巧-基础篇3
  • MySQL OCP888题解044-从服务器上导入mysql模式数据后的权限问题
  • 实战小项目之视频监控(1-2)
  • 人工智能基础--AI作业1-ML基础
  • 关于JS中this对象指向问题总结
  • Codeforces Round 855 (Div. 3) A-E2
  • Spark Yarn 运行环境搭建
  • SpringMVC 页面跳转指南:转发和重定向的实现与比较
  • ModStartCMS v5.9.0 后台浅色模式,系统样式升级
  • 2020蓝桥杯真题反倍数 C语言/C++
  • PTA:L1-025 正整数A+B、L1-026 I Love GPLT、L1-027 出租(C++)
  • 状态机的Go语言实现版本
  • 第2章 线程安全与共享资源竞争
  • 77. writerows写入多行
  • STM32MP157-Linux输入设备应用编程-多点触摸屏编程
  • mybatis-plus的一般实现过程(超详细)
  • Spark(5):RDD概述
  • 面向对象 - 继承
  • 计算机网络的166个概念你知道几个 第十二部分
  • 【RabbitMQ】RabbitMQ各版本的兼容性与技术支持时限
  • 【Git】P5 Git 远程仓库(3)pull 发生冲突
  • 关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解
  • 企业防护ddos的注意事项,你知道吗?