mysql之连表查询

目录

内连接:

外连接:

左外连接

右外连接

全外连接


内连接:

假设数据库表 dept

|--------|----------|
| deptno | deptname |
| 1 | 测试 |
| 3 | 开发 |

​​​​​​​ emp

|-------|---------|--------|
| empno | empName | deptno |
| 1 | 李四 | 1 |
| 2 | 张三 | 2 |

语法1

select 查询字段 from table1 t1,table2 t2 where t1.id=t2.id(关联字段)

例子:查询一个部门下的员工信息

select e.empname '姓名',d.deptname '部门名称' form dept d,emp e where d.deptno=e.deptno

|----|------|
| 姓名 | 部门名称 |
| 李四 | 测试 |

语法2

select 查询字段 from table1 t1 inner join table2 t2 on t1.id=t2.id(关联字段)

例子:查询一个部门下的员工信息

select e.empname '姓名',d.deptname '部门名称' form dept d inner join emp e on d.deptno=e.deptno

|----|------|
| 姓名 | 部门名称 |
| 李四 | 测试 |

外连接:

  • 1、数据集合上的区别

  • (1)左外连接:是A与B的交集,然后连接A的所有数据。

  • (2)右外连接:是A与B的交集,然后连接B的所有数据。

  • (3)全外连接:就是A与B的并集

左外连接

以左边表为主表

假设数据库表 dept

|--------|----------|
| deptno | deptname |
| 1 | 测试 |
| 3 | 开发 |

​​​​​​​ emp

|-------|---------|--------|
| empno | empName | deptno |
| 1 | 李四 | 1 |
| 2 | 张三 | 2 |

select e.*,d.name from dept d left join emp e on d.deptno=e.deptno

得出结果集为

|-------|---------|--------|----------|
| empno | empname | deptno | deptname |
| 1 | 李四 | 1 | 测试 |
| 2 | 张三 | 2 | null |

右外连接

select e.*,d.name from dept d right join emp e on d.deptno=e.deptno

得出结果集为

|-------|---------|--------|----------|
| empno | empname | deptno | deptname |
| 1 | 李四 | 1 | 测试 |
| null | null | null | 开发 |

全外连接

select e.*,d.name from dept d full join emp e on d.deptno=e.deptno

得出结果集为

|-------|---------|--------|----------|
| empno | empname | deptno | deptname |
| 1 | 李四 | 1 | 测试 |
| null | null | null | 开发 |
| 2 | 张三 | 2 | null |

​​​​​​​

相关推荐
程序新视界1 小时前
MySQL中什么是回表查询,如何避免和优化?
mysql
薛定谔的算法5 小时前
phoneGPT:构建专业领域的检索增强型智能问答系统
前端·数据库·后端
Databend7 小时前
Databend 亮相 RustChinaConf 2025,分享基于 Rust 构建商业化数仓平台的探索
数据库
得物技术8 小时前
破解gh-ost变更导致MySQL表膨胀之谜|得物技术
数据库·后端·mysql
Java水解8 小时前
【MySQL】从零开始学习MySQL:基础与安装指南
后端·mysql
Raymond运维12 小时前
MariaDB源码编译安装(二)
运维·数据库·mariadb
沢田纲吉12 小时前
🗄️ MySQL 表操作全面指南
数据库·后端·mysql
RestCloud1 天前
SQL Server到Hive:批处理ETL性能提升30%的实战经验
数据库·api
RestCloud1 天前
为什么说零代码 ETL 是未来趋势?
数据库·api
ClouGence1 天前
CloudCanal + Paimon + SelectDB 从 0 到 1 构建实时湖仓
数据库