關於join查詢的那麼點糾結

流浪的野狼發表於2013-10-05

測試學習了下oracle種的join的用法,結果讓我倍受打擊啊,簡單的測試如下:

SQL> select * from x;

     EMPNO        MGR ENAME      JOB              SAL
---------- ---------- ---------- --------- ----------
      7566       7839 JONES      MANAGER         2975
      7698       7839 BLAKE      MANAGER         2850
      7788       7566 SCOTT      ANALYST         3000
      7839            KING       PRESIDENT       5000
      7902       7566 FORD       ANALYST         3000

SQL> select e.EMPNO,m.MGR from x e join x m on e.empno=m.mgr where e.mgr=7839;

     EMPNO        MGR
---------- ----------
      7566       7566
      7566       7566

SQL> select e.EMPNO,m.MGR from x e join x m on e.empno=m.mgr where m.mgr=7839;

     EMPNO        MGR
---------- ----------
      7839       7839
      7839       7839
SQL> select e.EMPNO,m.empno,e.mgr,m.MGR from x e join x m on e.empno=m.mgr;

     EMPNO      EMPNO        MGR        MGR
---------- ---------- ---------- ----------
      7839       7566                  7839
      7839       7698                  7839
      7566       7788       7839       7566
      7566       7902       7839       7566

本來以為兩個查詢結果應該是一樣的,但是測試了下,原來是我誤會了,故此筆記一下,以此警示。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28612416/viewspace-773770/,如需轉載,請註明出處,否則將追究法律責任。

相關文章