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 |

​​​​​​​

相关推荐
我是黄大仙8 分钟前
利用飞书多维表格自动发布版本
运维·服务器·数据库·飞书
曾经的三心草8 分钟前
Mysql之约束与事件
android·数据库·mysql·事件·约束
宋发元11 分钟前
如何使用正则表达式验证域名
python·mysql·正则表达式
WuMingf_15 分钟前
redis
数据库·redis
张某布响丸辣22 分钟前
SQL中的时间类型:深入解析与应用
java·数据库·sql·mysql·oracle
路遇晚风1 小时前
力扣=Mysql-3322- 英超积分榜排名 III(中等)
mysql·算法·leetcode·职场和发展
P.H. Infinity2 小时前
【RabbitMQ】10-抽取MQ工具
数据库·分布式·rabbitmq
zgscwxd2 小时前
thinkphp6 --数据库操作 增删改查
数据库·thinkphp6
代码小鑫2 小时前
A031-基于SpringBoot的健身房管理系统设计与实现
java·开发语言·数据库·spring boot·后端