目录
内连接:
假设数据库表 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 |