丄諦啲仇魜ヤ
          如 果 敵 人 讓 你 生 氣 , 那 說 明 你 沒 有 勝 他 的 把 握!
          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 閱讀(227) 評論(0)  編輯  收藏 所屬分類: 數據庫
          主站蜘蛛池模板: 肇州县| 永平县| 屯门区| 天祝| 青州市| 武功县| 施秉县| 富民县| 信阳市| 徐州市| 蚌埠市| 观塘区| 墨脱县| 龙游县| 罗甸县| 利辛县| 甘孜县| 英超| 济阳县| 汉沽区| 芦溪县| 古蔺县| 稷山县| 沭阳县| 桑植县| 夹江县| 南江县| 合作市| 阿勒泰市| 法库县| 进贤县| 封丘县| 孟津县| 乳山市| 田东县| 海安县| 河间市| 永寿县| 岳阳市| 乌拉特前旗| 台州市|