1、内连接
(1)普通内连接
格式:
select * from 表1 INNER JOIN 表2 on 表1.关联字段1=表2.关联字段2
如:
select * from dept INNER JOIN emp on dept.dept1=emp.dept2
(2)隐藏连接
格式:select * from 表1,表2 where 表1.关联字段1=表2.关联字段2
如:select * from dept,emp where dept.dept1=emp.dept2
2、左连接
格式:
select * from 表1 left JOIN 表2 on 表1.关联字段1=表2.关联字段2
select * from dept left JOIN emp on dept.dept1=emp.dept2
3、右连接
格式:
select * from 表1 right JOIN 表2 on 表1.关联字段1=表2.关联字段2
select * from dept right JOIN emp on dept.dept1=emp.dept2
4、左独有
格式:
select * from 表1 left JOIN 表2 on 表1.关联字段1=表2.关联字段2 WHERE 右表字段 is null
如:select * from dept left JOIN emp on dept.dept1=emp.dept2 WHERE name is null
5、右独有
格式:
select * from 表1 right JOIN 表2 on 表1.关联字段1=表2.关联字段2 WHERE 左表字段 is null
如:
select * from dept right JOIN emp on dept.dept1=emp.dept2 WHERE
dept1 is null
6、全外连接(union)
1)内连接+左独有+右独有
select * from dept INNER JOIN emp on dept.dept1=emp.dept2
union
select * from dept left JOIN emp on dept.dept1=emp.dept2 where
name is null
union
select * from dept right JOIN emp on dept.dept1=emp.dept2 WHERE
dept1 is null
(2)左连接+右独有
如:
select * from dept left JOIN emp on dept.dept1=emp.dept2
UNION
select * from dept right JOIN emp on dept.dept1=emp.dept2 WHERE
dept1 is null
(3)右连接+左独有
select * from dept right JOIN emp on dept.dept1=emp.dept2
UNION
select * from dept left JOIN emp on dept.dept1=emp.dept2 where
name is null