2007年3月28日 星期三

使用聯結

參考網址:http://msdn2.microsoft.com/zh-tw/library/ms191472.aspx

內部聯結 (此為典型的聯結作業,使用一些比較運算子,例如 = 或 <>)。這些聯結包含等聯結 (Equi-Join) 與自然聯結 (Natural Join)。
內部聯結將根據兩個資料表中的相同資料行數值,使用比較運算子來比對兩個資料表的資料列。例如,擷取出 students 與 courses 資料表中學生識別號碼相同的所有資料列。

外部聯結。外部聯結可以是左方外部聯結、右方外部聯結或完整外部聯結。
當外部聯結指定於 FROM 子句中時,它們可使用下列關鍵字集合之一來加以指定:

LEFT JOIN 或 LEFT OUTER JOIN
左方外部聯結的結果集包含 LEFT OUTER 子句中指定之左方資料表的所有資料列,而非只是聯結資料行符合的資料列。當左方資料表沒有和右方資料表符合的資料列時,關聯的結果集資料列會包含右方資料表所有選取清單資料行的 Null 值。

RIGHT JOIN 或 RIGHT OUTER JOIN
右方外部聯結是左方外部聯結的反向。會傳回右方資料表的所有資料列。當右方資料表沒有和左方資料表符合的資料列時,左方資料表會傳回 Null 值。

FULL JOIN 或 FULL OUTER JOIN
完整外部聯結會傳回同時在左方和右方資料表的所有資料列。只要沒有和另一個資料表符合的資料列時,另一個資料表的選取清單資料行會包含 Null 值。當兩個資料表之間有符合的資料列,整個結果集資料列就會包含基底資料表的資料值。

交叉聯結
交叉聯結會從左方資料表傳回所有資料列。來自左方資料表的每個資料列會與來自右方資料表的所有資料列組合。交叉聯結也稱為笛卡兒乘積 (Cartesian Product)。

沒有留言: