<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 渠上月 閱讀(369) 評論(0)  編輯  收藏 所屬分類: sql (sqlServer)
    主站蜘蛛池模板: 免费观看的a级毛片的网站| 国产亚洲精品免费| 男女作爱在线播放免费网站| 免费一区二区三区四区五区| 亚洲av永久无码精品网址| 一二三四影视在线看片免费 | a级成人毛片免费视频高清| 色www永久免费网站| 久久亚洲色一区二区三区| 免费无码午夜福利片69| 亚洲国产主播精品极品网红| 一级人做人a爰免费视频| 亚洲精品国产福利一二区| 一级看片免费视频囗交| 亚洲一区二区女搞男| 久久精品免费视频观看| 亚洲视频精品在线| 亚洲性无码AV中文字幕| 男女一边摸一边做爽的免费视频| 3344免费播放观看视频| 亚洲av无码一区二区三区观看| 成人免费一级毛片在线播放视频| 国产精品亚洲精品| 外国成人网在线观看免费视频| 国产特级淫片免费看| 久久亚洲AV成人无码| 国产大片线上免费观看| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲天堂在线视频| 色欲色香天天天综合网站免费| 亚洲字幕在线观看| 久久九九全国免费| 亚洲国产成AV人天堂无码| 国产大片91精品免费看3| 精品国产污污免费网站入口| 中文字幕亚洲第一在线| 免费无码一区二区三区蜜桃大| 和老外3p爽粗大免费视频| 亚洲黄色在线观看| 亚洲国产综合久久天堂| 99视频有精品视频免费观看|