none
多表單關聯 RRS feed

  • 問題

  • 重新修正此問題好了= =

    有人能告訴我

    Left Outer join
    Right Outer join
    ineer join

    的差別嗎?有時候我都會搞不懂要怎麼用這些 join
    2009年2月11日 下午 04:47

解答

  • 若你有安裝 Access ,搜尋:JETSQL40.CHM 這個線上手冊裡面有。
    引用:JETSQL40.CHM::/dasqlleftrightjoin.htm
    註解

    使用 LEFT JOIN 建立左邊外部連接。 左邊外部連接將包含了從第一個 (左邊) 開始的兩個資料表中的全部記錄,即使在第二個 (右邊) 資料表中並沒有相符值的記錄。

    使用 RIGHT JOIN 建立右邊外部連接。 右邊外部連接將包含了從第二個 (右邊) 開始的兩個資料表中的全部記錄,即使在第一個 (左邊) 資料表中並沒有相符合值的記錄。

    使用 INNER JOIN 運算建立一個查詢,且該查詢只包含在連接欄位中有相同資料的記錄。

    • INNER JOIN 之中可以寫一個巢狀式的 LEFT JOIN 或一個 RIGHT JOIN,但是在一個 LEFT JOIN 或一個 RIGHT JOIN 之中不能寫巢狀式的 INNER JOIN。 請參閱 INNER JOIN 主題中有關使用巢狀的討論,從其中可獲知如何在其它連接中撰寫巢狀連接的資訊。
    • 您可以連結多個 ON 子句。 若需更多資訊,請參閱在 INNER JOIN 主題中的子句連結的討論。


    簡單來說,你有 A, B 兩表格連接:
    LEFT: 以 A 為主,B 沒有的就是 Null ,常用語:左有又沒有
    RIGHT: 以 B 為主,A 沒有的就是 Null ,常用語:右有左沒有
    INNER: A, B 都有的才選出來,常用語:兩表皆有

    範例:
    假設 A: {1, 2, 3} , B: {1, 3, 5, 7}
    A LEFT JOIN B: {(1,1), (2, Null), (3,3)}
    A RIGHT JOIN B: {(1,1), (3,3), (Null, 5), (Null, 7)}
    A INNER JOIN B: {(1,1), (3,3)}

    • 已標示為解答 Lolota Lee 2009年2月23日 上午 02:33
    2009年2月16日 上午 03:57

所有回覆

  •  http://en.wikipedia.org/wiki/Join_(database)
    MVP 2009 (ASP.NET), MCPD: ASP.NET Developer 3.5, MCPD: Windows Developer 3.5, MCITP: Database Developer 2008, MCITP: Enterprise Administrator 不想被人認為是小白,就不要總是在做一堆會讓人認為是小白的事。
    2009年2月16日 上午 02:01
    版主
  • 若你有安裝 Access ,搜尋:JETSQL40.CHM 這個線上手冊裡面有。
    引用:JETSQL40.CHM::/dasqlleftrightjoin.htm
    註解

    使用 LEFT JOIN 建立左邊外部連接。 左邊外部連接將包含了從第一個 (左邊) 開始的兩個資料表中的全部記錄,即使在第二個 (右邊) 資料表中並沒有相符值的記錄。

    使用 RIGHT JOIN 建立右邊外部連接。 右邊外部連接將包含了從第二個 (右邊) 開始的兩個資料表中的全部記錄,即使在第一個 (左邊) 資料表中並沒有相符合值的記錄。

    使用 INNER JOIN 運算建立一個查詢,且該查詢只包含在連接欄位中有相同資料的記錄。

    • INNER JOIN 之中可以寫一個巢狀式的 LEFT JOIN 或一個 RIGHT JOIN,但是在一個 LEFT JOIN 或一個 RIGHT JOIN 之中不能寫巢狀式的 INNER JOIN。 請參閱 INNER JOIN 主題中有關使用巢狀的討論,從其中可獲知如何在其它連接中撰寫巢狀連接的資訊。
    • 您可以連結多個 ON 子句。 若需更多資訊,請參閱在 INNER JOIN 主題中的子句連結的討論。


    簡單來說,你有 A, B 兩表格連接:
    LEFT: 以 A 為主,B 沒有的就是 Null ,常用語:左有又沒有
    RIGHT: 以 B 為主,A 沒有的就是 Null ,常用語:右有左沒有
    INNER: A, B 都有的才選出來,常用語:兩表皆有

    範例:
    假設 A: {1, 2, 3} , B: {1, 3, 5, 7}
    A LEFT JOIN B: {(1,1), (2, Null), (3,3)}
    A RIGHT JOIN B: {(1,1), (3,3), (Null, 5), (Null, 7)}
    A INNER JOIN B: {(1,1), (3,3)}

    • 已標示為解答 Lolota Lee 2009年2月23日 上午 02:33
    2009年2月16日 上午 03:57