全外串連和交叉串連,串連串連

來源:互聯網
上載者:User

全外串連和交叉串連,串連串連
全外串連是在結果中除了顯示滿足串連的條件的行外,還顯示了join兩側表中所有滿足檢索條件的行。
SQL> select e.empno,e.ename,e.sal,d.grade
  2  from emp e full outer join salgrade d
  3  on e.sal between d.losal and d.hisal;
     EMPNO ENAME             SAL      GRADE
---------- ---------- ---------- ----------
      7839 KING             5000          5
      7902 FORD             3000          4
      7788 SCOTT            3000          4
      7566 JONES            2975          4
      7698 BLAKE            2850          4
      7782 CLARK            2450          4
      7499 ALLEN            1600          3
      7844 TURNER           1500          3
      7934 MILLER           1300          2
      7521 WARD             1250          2
      7654 MARTIN           1250          2
      7876 ADAMS            1100          1
      7900 JAMES             950          1
      7369 SMITH             800          1
      7937 Candy             500                                                                                                 6 
       
上面的結果中
      7937 Candy             500                                                       
這一條資料沒有對應的工資等級,
                                          6 
這條資料沒有對應的員工資訊,右外串連




交叉串連
    使用cross joi實現交叉串連,可以將兩個表的交叉串連,所得到的結果是將這兩個表中各行資料的所有的組合,即這兩個表所有資料行的笛卡兒積。
    交叉串連與簡單串連操作非常相似,不同的是,使用交叉串連時,在from子句中多個表名之間不是逗號,而是使用cross join關鍵字隔開。令外,在交叉串連中不需要使用關鍵字on限定串連條件,但是可以添加where子句設定串連條件。
SQL> select empno,ename,e.deptno,d.deptno
  2  from emp e cross join dept d;
     EMPNO ENAME          DEPTNO     DEPTNO
---------- ---------- ---------- ----------
      7369 SMITH              20         10
      7499 ALLEN              30         10
      7521 WARD               30         10
      7566 JONES              20         10
      7654 MARTIN             30         10
      7698 BLAKE              30         10
      7782 CLARK              10         10
      7788 SCOTT              20         10
      7839 KING               10         10
      7844 TURNER             30         10
      7876 ADAMS              20         10
      7900 JAMES              30         10
      7902 FORD               20         10
      7934 MILLER             10         10
      7937 Candy                         10
      7369 SMITH              20         20
      7499 ALLEN              30         20
      7521 WARD               30         20
      7566 JONES              20         20
      7654 MARTIN             30         20
      7698 BLAKE              30         20
      7782 CLARK              10         20
      7788 SCOTT              20         20
      7839 KING               10         20
      7844 TURNER             30         20
      7876 ADAMS              20         20
      7900 JAMES              30         20
      7902 FORD               20         20
      7934 MILLER             10         20
      7937 Candy                         20
      7369 SMITH              20         30
      7499 ALLEN              30         30
      7521 WARD               30         30
      7566 JONES              20         30
      7654 MARTIN             30         30
      7698 BLAKE              30         30
      7782 CLARK              10         30
      7788 SCOTT              20         30
      7839 KING               10         30
      7844 TURNER             30         30
      7876 ADAMS              20         30
      7900 JAMES              30         30
      7902 FORD               20         30
      7934 MILLER             10         30
      7937 Candy                         30
      7369 SMITH              20         40
      7499 ALLEN              30         40
      7521 WARD               30         40
      7566 JONES              20         40
      7654 MARTIN             30         40
      7698 BLAKE              30         40
      7782 CLARK              10         40
      7788 SCOTT              20         40
      7839 KING               10         40
      7844 TURNER             30         40
      7876 ADAMS              20         40
      7900 JAMES              30         40
      7902 FORD               20         40
      7934 MILLER             10         40
      7937 Candy                         40
已選擇 60 行。
//交叉串連如果不使用任何的條件限制的話,將得到的是資料的笛卡兒積,也就是每個表中的資料與另一個表中的資料的所有的組合。
SQL> select empno,ename,e.deptno,d.deptno
  2  from emp e cross join dept d
  3  where d.deptno=10
  4  and e.deptno=10;
     EMPNO ENAME          DEPTNO     DEPTNO
---------- ---------- ---------- ----------
      7782 CLARK              10         10
      7839 KING               10         10
      7934 MILLER             10         10
//對兩個表中的deptno進行限制











































相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.