<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-9  評論-168  文章-266  trackbacks-0

    SQL中的各種JOINinner join,full outer join,left join,right join,cross join

    SQL中的連接可以分為內(nèi)連接,外連接,以及交叉連接 (即是笛卡爾積)

    a. 交叉連接
    CROSS JOIN
    如果不帶WHERE條件子句,它將會返回被連接的兩個表的笛卡爾積,返回結(jié)果的行數(shù)等于兩個表行數(shù)的乘積;


    舉例,下列A、B、C 執(zhí)行結(jié)果相同,但是效率不一樣:
    A:SELECT * FROM table1 CROSS JOIN table2
    B:SELECT * FROM table1,table2

    C:select * from table1 a inner join table2 b


    A:select a.*,b.* from table1 a,table2 b where a.id=b.id
    B:select * from table1 a cross join table2 b where a.id=b.id (
    注:cross join后加條件只能用where,不能用on)
    C:select * from table1 a inner join table2 b on a.id=b.id


    一般不建議使用方法A和B,因為如果有WHERE子句的話,往往會先生成兩個表行數(shù)乘積的行的數(shù)據(jù)表然后才根據(jù)WHERE條件從中選擇。
    因此,如果兩個需要求交際的表太大,將會非常非常慢,不建議使用。


    b. 內(nèi)連接INNER JOIN
    兩邊表同時符合條件的組合

    如果僅僅使用
    SELECT * FROM table1 INNER JOIN table2

    內(nèi)連接如果沒有指定連接條件的話,和笛卡爾積的交叉連接結(jié)果一樣,但是不同于笛卡爾積的地方是,沒有笛卡爾積那么復(fù)雜要先生成行數(shù)乘積的數(shù)據(jù)表,內(nèi)連接的效率要高于笛卡爾積的交叉連接。

    但是通常情況下,使用INNER JOIN需要指定連接條件。

    ***************關(guān)于等值連接和自然連接

    等值連接(=號應(yīng)用于連接條件, 不會去除重復(fù)的列)

    自然連接(會去除重復(fù)的列)

    數(shù)據(jù)庫的連接運算都是自然連接,因為不允許有重復(fù)的行(元組)存在。
    例如:

    SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.column=b.column

    c.
    外連接OUTER JOIN
    指定條件的內(nèi)連接,僅僅返回符合連接條件的條目。

    外連接則不同,返回的結(jié)果不僅包含符合連接條件的行,而且包括左表(左外連接時), 右表(右連接時)或者兩邊連接(全外連接時)的所有數(shù)據(jù)行。

    1)左外連接LEFT [OUTER] JOIN
    顯示符合條件的數(shù)據(jù)行,同時顯示左邊數(shù)據(jù)表不符合條件的數(shù)據(jù)行,右邊沒有對應(yīng)的條目顯示
    NULL
    例如

    SELECT * FROM table1 AS a LEFT [OUTER] JOIN ON a.column=b.column
    2)
    右外連接RIGHT [OUTER] JOIN
    顯示符合條件的數(shù)據(jù)行,同時顯示右邊數(shù)據(jù)表不符合條件的數(shù)據(jù)行,左邊沒有對應(yīng)的條目顯示
    NULL
    例如

    SELECT * FROM table1 AS a RIGHT [OUTER] JOIN ON a.column=b.column
    3)
    全外連接full [outer] join
    顯示符合條件的數(shù)據(jù)行,同時顯示左右不符合條件的數(shù)據(jù)行,相應(yīng)的左右兩邊顯示NULL,即顯示左連接、右連接和內(nèi)連接的并集

                               ------http://hi.baidu.com/magickerr/blog/item/393c0a01aa13290b7aec2c63.html
    posted on 2008-09-10 21:53 紫蝶∏飛揚↗ 閱讀(4839) 評論(0)  編輯  收藏 所屬分類: Hibernate數(shù)據(jù)庫
    主站蜘蛛池模板: 亚洲福利中文字幕在线网址| 亚洲AV电影院在线观看| 久久久久久国产a免费观看不卡| 亚洲熟妇无码AV在线播放| 日韩在线不卡免费视频一区| 亚洲校园春色另类激情| 免费在线观看污网站| 在线看片免费人成视频播| 亚洲国产精品综合久久20| 亚洲片国产一区一级在线观看 | 亚洲欧美日韩中文高清www777| 亚洲国产aⅴ综合网| 久久精品国产免费观看| 男人和女人高潮免费网站 | 亚洲最大天堂无码精品区| 亚洲熟女少妇一区二区| 免费网站看v片在线香蕉| 永久免费不卡在线观看黄网站| 亚洲欧美日韩国产精品一区| 亚洲国产精品无码久久久不卡| 免费无码不卡视频在线观看| 国产成人AV片无码免费| 黄页网址大全免费观看12网站| 亚洲毛片基地日韩毛片基地 | 亚洲日本VA午夜在线影院| 亚洲av之男人的天堂网站| 国产99视频精品免费视频7| 亚洲免费二区三区| 女同免费毛片在线播放| 黄网站色视频免费观看45分钟| 亚洲国产精品久久久久秋霞影院| 免费人成在线观看播放a| 亚洲入口无毒网址你懂的| 久久精品国产亚洲| 国产亚洲欧洲Aⅴ综合一区| 国产精品久久香蕉免费播放| 69天堂人成无码麻豆免费视频| 午夜无码A级毛片免费视频| 一级毛片完整版免费播放一区| 亚洲精华国产精华精华液| 亚洲人成在线中文字幕|