表连接
99语法
elect 数据 from 数据来源1 join 数据来源2;
笛卡尔积 对乘 cross join 交叉插入
select * from emp e cross join dept d; --99语法
select * from emp,dept; --92语法
内连接 外链接(左外连接,右外连接) 全链接
--等值连接
--自动做等值连接
--注意: 同名字段不要使用限定词
--自然连接 natural join 自动帮你做等值连接 同名字段|主外键关系
select empno,ename,deptno,dname from emp e natural inner join dept d;
--join using(字段) 指明对哪一个字段做等值连接
select empno,ename,deptno,dname from emp inner join dept using(deptno);
-- 数据来源1 join 数据来源2 on 连接条件(等值|非等值) 同名字段需要指明出处
select empno,ename,emp.deptno,dname from emp join dept on emp.deptno = dept.deptno;
--非等值连接
--员工信息和工资等级
select * from emp e inner join salgrade s on e.sal between losal and hisal;
select *
from emp
join dept
on emp.deptno = dept.deptno
join salgrade
on sal between losal and hisal
where emp.deptno = 30;
--有上级的员工信息和上级信息
select * from emp e1 join emp e2 on e1.mgr = e2.empno;
--外链接 left join | right join
--主表
--所有员工信息和上级信息
select * from emp e1 left join emp e2 on e1.mgr = e2.empno;
--全连接
select 1 no, 'a' "name" from dual union select 2 no, &