sql语句得连接查询老是弄不明白。主要是什么时候用到,内连接,外连接,左连接,右连接,
子查询,

解决方案 »

  1.   

    INNER 指定必須傳回所有相符的資料列配對。捨棄兩份資料表中不相符的資料列。如果未指定聯點類型,這就是預設值。FULL [ OUTER ] 指定左資料表或右資料表中不符合聯結條件的資料列必須併入結果集中,且對應於其他資料表的輸出資料行必須設為 NULL。這是通常由 INNER JOIN 傳回之所有資料列以外的項目。LEFT [ OUTER ] 指定左資料表中不符合聯結條件的所有資料列必須併入結果集中,而且,除了內部聯結所傳回的所有資料列以外,還必須將其他資料表中的輸出資料行設為 NULL。RIGHT [OUTER] 指定右資料表中不符合聯結條件的所有資料列必須併入結果集中,而且,除了內部聯結所傳回的所有資料列以外,還必須將對應於其他資料表的輸出資料行設為 NULL。<join_hint> 指定 SQL Server 查詢最佳化工具必須使用一個聯結提示,或執行演算法、查詢 FROM 子句中指定的每個聯結。如需詳細資訊,請參閱<聯結提示 (Transact-SQL)>。JOIN 指出所指定的聯結作業必須發生在所指定的資料表來源或檢視之間。ON <search_condition> 指定聯結所根據的條件。條件可以指定任何述詞 (雖然通常都是使用資料行和比較運算子),例如:  複製程式碼 
    SELECT p.ProductID, v.VendorID
    FROM Production.Product p 
    JOIN Purchasing.ProductVendor v
    ON (p.ProductID = v.ProductID)
     當條件指定資料行時,這些資料行不必有相同的名稱或相同的資料類型;不過,如果資料類型不同,它們必須相容的類型或 SQL Server 2005 可以利用隱含方式轉換的類型。如果資料類型無法利用隱含方式轉換,條件必須藉由 CONVERT 函數,利用明確方式轉換資料類型。 ON 子句中可以有僅涉及其中一個聯結資料表的述詞。這類述詞也可以在查詢的 WHERE 子句中。雖然這類述詞的放置不會影響 INNER 聯結,不過,如果涉及 OUTER 聯結,就可能會造成不同的結果。這是因為 ON 子句中的述詞會套用至聯結之前的資料表,但在語意上,WHERE 子句則套用至聯結的結果。 如需有關搜尋條件和述詞的詳細資訊,請參閱<搜尋條件 (Transact-SQL)>。 CROSS JOIN 指定兩個資料表的交叉乘積。所傳回的資料列與舊式非 SQL-92 樣式聯結中不指定任何 WHERE 子句時所傳回的資料列相同。
      

  2.   

    我得是2000sql。带的帮助,好像是不详细啊是不是得到msdn里呢
      

  3.   

    2000sql的帮助就足够详细了,每种连接都摸索着试一下,学习了就多实践,当然去msdn社区也可以,那里更全
      

  4.   

    还是看sql 自带的帮助吧, 看看left join 就可以了阿。