SQL:JOIN完全用法的解答

    時間:2024-06-25 10:29:21 SQL 我要投稿
    • 相關推薦

    SQL:JOIN完全用法的解答

      外聯接

      外聯接可以是左向外聯接、右向外聯接或完整外部聯接。在 FROM 子句中指定外聯接時,可以由下列幾組關鍵字中的一組指定:LEFT JOIN 或 LEFT OUTER JOIN。

      左向外聯接的結果集包括 LEFT OUTER 子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值。

      RIGHT JOIN 或 RIGHT OUTER JOIN。

      右向外聯接是左向外聯接的反向聯接。將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值。

      FULL JOIN 或 FULL OUTER JOIN。

      完整外部聯接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。

      僅當至少有一個同屬于兩表的行符合聯接條件時,內聯接才返回行。內聯接消除與另一個表中的任何行不匹配的行。而外聯接會返回 FROM 子句中提到的至少一個表或視圖的所有行,只要這些行符合任何 WHERE 或 HAVING 搜索條件。將檢索通過左向外聯接引用的左表的所有行,以及通過右向外聯接引用的右表的所有行。完整外部聯接中兩個表的所有行都將返回。

      Microsoft SQL Server 2000 對在 FROM 子句中指定的外聯接使用以下 SQL-92 關鍵字:

      LEFT OUTER JOIN 或 LEFT JOIN

      RIGHT OUTER JOIN 或 RIGHT JOIN

      FULL OUTER JOIN 或 FULL JOIN

      SQL Server 支持 SQL-92 外聯接語法,以及在 WHERE 子句中使用 *= 和 =* 運算符指定外聯接的舊式語法。由于 SQL-92 語法不容易產生歧義,而舊式 Transact-SQL 外聯接有時會產生歧義,因此建議使用 SQL-92 語法。

      使用左向外聯接

      假設在 city 列上聯接 authors 表和 publishers 表。結果只顯示在出版商所在城市居住的作者(本例中為 Abraham Bennet 和 Cheryl Carson)。

      若要在結果中包括所有的作者,而不管出版商是否住在同一個城市,請使用 SQL-92 左向外聯接。下面是 Transact-SQL 左向外聯接的查詢和結果:

      USE pubs

      SELECT a.au_fname, a.au_lname, p.pub_name

      FROM authors a LEFT OUTER JOIN publishers p

      ON a.city = p.city

      ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC

    【SQL:JOIN完全用法的解答】相關文章:

    oracle的sql語句01-21

    SQL優化大全09-09

    JavaScript中push(),join() 函數實例詳解09-05

    深圳經濟適用住房取得完全產權和上市交易暫行辦法政策解答08-25

    SQL查詢語句大全10-24

    SQL語句的理解原則10-05

    PHP防止SQL注入的例子09-25

    mysql SQL語句積累參考10-02

    執行sql原理l分析05-12

    SQL中的單記錄函數08-12

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      日本中文子幕亚洲乱码 | 亚洲a视频在线观看 | 日韩专区一区国产 | 午夜丰满少妇性开放视频 | 欧美大片在线视观看喷水 | 中文字幕一二三区波多野衣 |