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

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

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

    blog.Toby

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      130 隨筆 :: 2 文章 :: 150 評論 :: 0 Trackbacks

    ? join 方式
    (1) cross join
    ????? 參與select語句所有表的的所有行的笛卡爾乘積
    ????? select au_lname ,title
    ????? from authors cross join? titiles

    ???? outer? join 對參與join的兩個表有主從之分,處理方式以主表的每條數據去match 從屬表的列,合乎條件的數據是我們所要的答案,不合乎條件的也是我們要的答案,只不過哪些從屬表選取的列將被添上null。
    (2) left join
    ???? 左邊的為主表,右邊為從屬表
    ???? select a.cust_id ,b.order_date,b.tot_ant
    ???? from customer a left join sales b
    ???? on (a.cust_id =b.cust_id and b.order_date>''1996/10/15'')
    ???? 可以寫為
    ???? select a.cust_id,b.order_date,b.tot_ant
    ???? from custom a
    ???? left join (select * from sales where order_date>''1996/10/15'') b
    ??? on a.cust_id =b.cust_id??
    (3) right join
    ???? 左邊的表為從屬表,右邊的表為主表
    (4) self join
    ???? self join 常用在同一表內不同數據間對同一列的比較
    ??? select a.emp_no,a.emp_name,b.emp_no,b.emp_name,a.date_hired
    ??? from employee a
    ??? join employee b
    ??? on (a.emp_no!=b.emp_no and a.date_hired=b.date_hired)
    ??? order by a.date_hired
    ?? 這樣會重復數據,只要加上一句 and a.emp_name>b.emp_name
    (5) full join
    ???? 不僅列出符合條件的數據,兩邊未符合join條件的數據也會一并列出。哪些未符合join條件的數據如果在select列中無法得到對應的值則填上null
    ??? select a.cust_id,b.tot_amt
    ??? from customer a full join sales b
    ??? on a.cust_id=b.cust_id
    有表
    ?id?? ic? name? amount
    ????? I??? *??????? *
    ????? c
    ????? i
    ????? c
    ????? i
    ????? i??
    ?? 要求結果為?
    ??? ic? name? amount? ic?? name? amount
    ??? i???????????????????????? c
    ??? i???????????????????????? c
    ??? i
    ??? i
    ? select aaa.*,bbb.*
    ? from ( select (select count(id) from? aa as? b where (b.id<a.id) and (ic=''i'')) as???? newid, * from aa a where ic=''i'') aaa
    ? full join
    ?? (select (select count(id) from aa as b where b.id<a.id and ic=''c'') as newid,* from
    ?aa a where ic=''c'') bbb
    on aaa.newid=bbb.newid
    order by aaa.name
    6.使用 HASH 和 MERGE 聯接提示
    此示例在 authors、titleauthors 和 titles 表之間建立三表聯接,以生成一個作者及其著作的列表。查詢優化器使用 MERGE 聯接將 authors 和 titleauthors (A x TA) 聯接在一起。然后,將 authors 和 titleauthors MERGE 聯接 (A x TA) 的結果與 titles 表進行 HASH 聯結以生成 (A x TA) x T。


    重要? 指定聯接提示后,要執行 INNER JOIN 時 INNER 關鍵字不再為可選,而必須顯式說明。


    USE pubs
    SELECT SUBSTRING((RTRIM(a.au_fname) + '' '' + LTRIM(a.au_lname)), 1, 25)
    ?? AS Name, SUBSTRING(t.title, 1, 20) AS Title
    FROM authors a INNER MERGE JOIN titleauthor ta
    ?? ON a.au_id = ta.au_id INNER HASH JOIN titles t
    ?? ON t.title_id = ta.title_id
    ORDER BY au_lname ASC, au_fname ASC

    下面是結果集:

    Warning: The join order has been enforced because a local join hint is used.
    Name????????????????????? Title???????????????
    ------------------------- --------------------
    Abraham Bennet??????????? The Busy Executive''s
    Reginald Blotchet-Halls?? Fifty Years in Bucki
    Cheryl Carson???????????? But Is It User Frien
    Michel DeFrance?????????? The Gourmet Microwav
    Innes del Castillo??????? Silicon Valley Gastr
    ...??????????????????? ...
    Johnson White???????????? Prolonged Data Depri
    Akiko Yokomoto??????????? Sushi, Anyone???????

    (25 row(s) affected)

    (7)Inner Join

    Inner Join 邏輯運算符返回滿足第一個(頂端)輸入與第二個(底端)輸入聯接的每一行。

    作者Blog:http://blog.csdn.net/softj/

    posted on 2006-04-03 13:54 渠上月 閱讀(357) 評論(0)  編輯  收藏 所屬分類: sql (sqlServer)
    主站蜘蛛池模板: 国产精品手机在线亚洲| 亚洲日韩区在线电影| 国产成人免费网站在线观看| 成年女性特黄午夜视频免费看 | 亚洲精品视频免费在线观看| 亚洲成a人片在线观看中文动漫| 久久亚洲国产午夜精品理论片| 亚洲精品美女久久777777| 亚洲综合国产一区二区三区| 怡红院亚洲怡红院首页| 亚洲成AV人片在线观看| 亚洲精品无码不卡| 亚洲国产综合人成综合网站00| 亚洲ts人妖网站| 亚洲国产区男人本色| 黄色网址大全免费| 亚洲日韩在线观看免费视频| 西西人体免费视频| 最近免费中文字幕高清大全 | 人妻免费久久久久久久了| 一个人看的免费视频www在线高清动漫| 成年网站免费入口在线观看 | 亚洲国产成人精品无码区花野真一| 亚洲成av人片在www鸭子| 四虎影视在线看免费观看| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 在线观看人成视频免费无遮挡| 日韩午夜理论免费TV影院| 嫖丰满老熟妇AAAA片免费看| 毛片免费观看视频| 亚洲成av人片在线观看天堂无码 | 四虎永久免费观看| 在线A亚洲老鸭窝天堂| 亚洲精品高清国产一久久| 亚洲xxxx18| 永久免费无码日韩视频| 久久国产精品萌白酱免费| 免费无码肉片在线观看| 成人亚洲综合天堂| 久久亚洲精品成人| 亚洲a视频在线观看|