丄諦啲仇魜ヤ
          如 果 敵 人 讓 你 生 氣 , 那 說 明 你 沒 有 勝 他 的 把 握!
          posts - 6,comments - 56,trackbacks - 1
          關聯的兩張表,當數據少的那張要在數據多的那張表字段里,顯示為NULL時,就需要使用外連接。
           

            在講外連接之前,先舉例介紹內連接,也就是一般的相等連接。

            select * from a, b where a.id = b.id;

            對于外連接,Oracle中可以使用“(+)”來表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN,下面將配合實例一一介紹。

            1. LEFT OUTER JOIN:左外關聯

            SELECT e.last_name, e.department_id, d.department_name

            FROM employees e

            LEFT OUTER JOIN departments d

            ON (e.department_id = d.department_id);

            等價于

            SELECT e.last_name, e.department_id, d.department_name

            FROM employees e, departments d

            WHERE e.department_id=d.department_id(+);

            結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄。

            2. RIGHT OUTER JOIN:右外關聯

            SELECT e.last_name, e.department_id, d.department_name

            FROM employees e

            RIGHT OUTER JOIN departments d

            ON (e.department_id = d.department_id);

            等價于

            SELECT e.last_name, e.department_id, d.department_name

            FROM employees e, departments d

            WHERE e.department_id(+)=d.department_id;

            結果為:所有員工及對應部門的記錄,包括沒有任何員工的部門記錄。

            3. FULL OUTER JOIN:全外關聯

            SELECT e.last_name, e.department_id, d.department_name

            FROM employees e

            FULL OUTER JOIN departments d

            ON (e.department_id = d.department_id);

            結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄和沒有任何員工的部門記錄。

          posted on 2007-09-27 19:05 Crying 閱讀(231) 評論(0)  編輯  收藏 所屬分類: 數據庫
          主站蜘蛛池模板: 隆安县| 横峰县| 灵宝市| 儋州市| 固镇县| 拉孜县| 崇阳县| 镇沅| 昌邑市| 兴宁市| 静海县| 崇仁县| 闽清县| 余干县| 阜阳市| 呼和浩特市| 思南县| 台山市| 安庆市| 永清县| 铜川市| 阳新县| 张家港市| 长白| 通城县| 元氏县| 柳江县| 专栏| 行唐县| 漯河市| 军事| 田阳县| 额尔古纳市| 扎囊县| 绥中县| 万源市| 望谟县| 油尖旺区| 桦甸市| 龙井市| 青川县|