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;

连接方法有:等值连接,哈希连接,排序合并,嵌套循环

posted @   左叔  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示