ORACLE----连接查询
ORACLE----连接查询
连接查询包括:内连接1种,外连接3种
内连接:
INNER JOIN ON (INNER 可以省略不写)
SELECT *
FROM 表1
INNER JOIN 表2
ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2
SELECT *
FROM EMP E
JOIN DEPT D
ON E.DEPTNO = D.DEPTNO
WHERE SAL > 2000;
--笛卡尔积(oracle写法)
SELECT E.*,D.DNAME,D.LOC
FROM EMP E,DEPT D
WHERE E.DEPTNO = D.DEPTNO;
外连接:
1、左外连接
SELECT *
FROM 表1 --主表
LEFT JOIN 表2 --从表
ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2
SELECT *
FROM EMP E
LEFT JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
--笛卡尔积(oracle写法)
SELECT E.*,D.DNAME,D.LOC
FROM EMP E,DEPT D
WHERE E.DEPTNO = D.DEPTNO(+); --+代表从表
2、右外连接
SELECT *
FROM 表1 --主表
RIGHT JOIN 表2 --从表
ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2
SELECT *
FROM EMP E
RIGHT JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
--笛卡尔积(oracle写法)
SELECT E.*,D.DNAME,D.LOC
FROM EMP E,DEPT D
WHERE E.DEPTNO(+)= D.DEPTNO; --+代表从表
3、全外连接(没有从表)
SELECT *
FROM 表1
FULL JOIN 表2
ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2
SELECT *
FROM EMP E
FULL JOIN DEPT D
ON E.DEPTNO = D.DEPTNO;
连接方法有:等值连接,哈希连接,排序合并,嵌套循环

浙公网安备 33010602011771号