sql连接查询
笛卡尔积:
select * from emp,dept;
select * from emp cross join dept;
等值连接(内连接)
(内连接把两个表连接成一个表(称为第三个表),在这个表中仅包含那些满足连接条件的记录行):
Select * from emp,dept where emp.deptno=dept.deptno;
外连接
(如果想只限定一个表的条件而不限定另外一个表的条件,就需要使用外连接):
select * from emp,dept where emp.deptno=dept.deptno;
select * from emp,dept where emp.deptno(+)=dept.deptno;
select * from emp right join dept on emp.deptno=dept.deptno;
select * from dept left join emp on dept.deptno=emp.deptno;
自连接
(自连接就是把某一张表中的行同该表中另外一些行连接起来):
select e.empno,e.ename,a.ename,a.mgr
from emp e,emp a
where e.mgr=a.empno;
多表关联查询:
select e.ename, e.sal, b.grade, a.ename, a.sal, d.grade
from emp e, emp a, salgrade b, salgrade d
where e.sal between b.losal and b.hisal
and a.sal between d.losal and d.hisal
and e.mgr = a.empno;
指定操作关联列:using
select * from emp join dept using(deptno);
自然连接:
select * from emp natural join dept ;