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

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

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

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

            1. LEFT OUTER JOIN:左外關(guān)聯(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);

            等價(jià)于

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

            FROM employees e, departments d

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

            結(jié)果為:所有員工及對(duì)應(yīng)部門(mén)的記錄,包括沒(méi)有對(duì)應(yīng)部門(mén)編號(hào)department_id的員工記錄。

            2. RIGHT OUTER JOIN:右外關(guān)聯(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);

            等價(jià)于

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

            FROM employees e, departments d

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

            結(jié)果為:所有員工及對(duì)應(yīng)部門(mén)的記錄,包括沒(méi)有任何員工的部門(mén)記錄。

            3. FULL OUTER JOIN:全外關(guān)聯(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é)果為:所有員工及對(duì)應(yīng)部門(mén)的記錄,包括沒(méi)有對(duì)應(yīng)部門(mén)編號(hào)department_id的員工記錄和沒(méi)有任何員工的部門(mén)記錄。

          posted on 2007-09-27 19:05 Crying 閱讀(231) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 數(shù)據(jù)庫(kù)
          主站蜘蛛池模板: 曲阳县| 临猗县| 宜宾市| 青岛市| 界首市| 扎囊县| 怀安县| 安达市| 北票市| 巨野县| 杭锦旗| 新密市| 汉寿县| 应城市| 来宾市| 天津市| 阿鲁科尔沁旗| 佛坪县| 日土县| 民权县| 台山市| 秭归县| 南京市| 三河市| 昭觉县| 梓潼县| 鄂伦春自治旗| 孟州市| 昔阳县| 利川市| 喀什市| 石泉县| 富锦市| 华容县| 华坪县| 吴忠市| 鹿邑县| 临邑县| 郑州市| 台山市| 曲阜市|