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

亚洲制服丝袜二区欧美精品,亚洲精品无码视频乱码,日韩av无码一区二区,国产人妖视频一区二区
亚洲精品国产91 | 午夜性色福利在线视频福利 | 天天高清在线看片 | 亚洲精品在看在线观看精品91 | 在线精品真实国产乱子伦 | 日本久久久久中文视频字幕 |