MySQL三 | 多表查询

目录

多表查询

内连接

隐式内连接

显示内连接

外连接

左外连接

右外连接

自连接

子查询


多表查询

笛卡尔积:集合A和集合B的所有组合情况 A * B

在多表查询时应消除无效的笛卡尔积

内连接

查询的是两张表交集的地方

隐式内连接

sql 复制代码
SELECT 字段列表 FROM 表1,表2 WHERE 条件...;

显示内连接

sql 复制代码
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件 ...;

外连接

左外连接

sql 复制代码
SELECT 字段列表 FROM 表一 LEFT [OUTER] JOIN 表二 ON 条件...;

左外连接相当于查询表1(左表)的所有数据 包含表一和表二交集部分的数据

右外连接

sql 复制代码
SELECT 字段列表 FROM 表二 RIGHT [OUTER] JOIN 表二 ON 条件...;

右外连接可以转换为左外连接

自连接

必须起别名

sql 复制代码
SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件...;

自连接查询,可以是内连接查询,也可以是外连接查询

子查询

在sql语句中嵌套select语句,称为嵌套查询,又称为子查询

sql 复制代码
SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

子查询外部可以是INSERT/UPDATE/DELETE/SELECT中的任意一个

|-------|--------------------------|
| 子查询类型 | 功能 |
| 标量子查询 | 子查询返回的结果是单个值(数字,字符串,日期等) |
| 列子查询 | 返回的结果是一列 |
| 行子查询 | 子查询返回的结果为一行 |
| 表子查询 | 返回的结果为多行多列 |

|--------|-------------------------|
| 常用操作符 | 功能 |
| IN | 在指定的集合范围内多选一 |
| NOT IN | 不在指定的范围内 |
| ANY | 子查询返回列表中,有任意一个满足即可 |
| SOME | 与ANY等同,使用SOME的地方都可以用ANY |
| ALL | 子查询返回列表的所有值都必须满足 |
| <> | 不等于 |

相关推荐
Lethehong1 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码2 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
cspttty2 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
roman_日积跬步-终至千里3 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱4 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle
XLYcmy4 小时前
《数字经济赋能城市低碳治理的路径研究检索报告》审阅与修改指导意见——基于完整检索报告体例的完整性诊断、学术规范核查与方法论纠偏 上
数据库·ai·chatgpt·文心一言·检索·知网·豆包
泡海椒4 小时前
JQuick-SQL 快速开始:注册内存表并执行查询
数据库·windows·sql
ss2734 小时前
PG实战笔记 | 09 PostgreSQL psql客户端基本操作
数据库·笔记·postgresql
电商API_180079052474 小时前
反向海淘多币种结算:汇率该在哪个时点被冻结
java·开发语言·数据库·跨境电商·1688 api
搞AI的金鱼5 小时前
skill agent workflow的区别
数据库