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

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

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

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

            1. LEFT OUTER JOIN:左外關聯(lián)

            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(+);

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

            2. RIGHT OUTER JOIN:右外關聯(lián)

            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;

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

            3. FULL OUTER JOIN:全外關聯(lián)

            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);

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

          posted on 2007-09-27 19:05 Crying 閱讀(225) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫
          主站蜘蛛池模板: 乳源| 吴忠市| 射阳县| 太湖县| 凤城市| 开封县| 宝鸡市| 江华| 新平| 甘肃省| 陕西省| 盐边县| 石渠县| 分宜县| 阿城市| 宜兰市| 阿合奇县| 木里| 竹山县| 辛集市| 凌云县| 盘锦市| 都江堰市| 调兵山市| 尼玛县| 塘沽区| 鲁山县| 达州市| 德令哈市| 武宁县| 莱芜市| 团风县| 隆昌县| 会东县| 来宾市| 增城市| 铜鼓县| 江山市| 屯留县| 高阳县| 淳化县|