摘要:數據庫會以左邊為基礎,與右邊表做笛卡爾乘積。或左連接左向外聯接的結果集包括子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。將返回右表的所有行。如果表之間有匹配行,則整個結果集行包含基表的數據值。
題目
表1: Person
+-------------+---------+ | 列名 | 類型 | +-------------+---------+ | PersonId | int | | FirstName | varchar | | LastName | varchar | +-------------+---------+
PersonId 是上表主鍵
表2: Address
+-------------+---------+ | 列名 | 類型 | +-------------+---------+ | AddressId | int | | PersonId | int | | City | varchar | | State | varchar | +-------------+---------+ AddressId 是上表主鍵
編寫一個 SQL 查詢,滿足條件:無論 person 是否有地址信息,都需要基于上述兩表提供 person 的以下信息:
FirstName, LastName, City, State題解
由于FirstName, LastName, City, State 來自兩個不同的 table, 所以要用join。由于要求必須顯示人名,即使沒有地址相關信息,說明要用LEFT JOIN。左連接即是將左邊表中的數據全部查找出來。數據庫會以左邊為基礎,與右邊表做笛卡爾乘積。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值。
select FirstName, LastName, City, State from Person left join Address on Person.PersonId=Address.PersonIdLEFT JOIN或LEFT OUTER JOIN 左連接
左向外聯接的結果集包括 LEFT OUTER子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。如果左表的某行在右表中沒有匹配行,則在相關聯的結果集行中右表的所有選擇列表列均為空值。
RIGHT JOIN 或 RIGHT OUTER JOIN 右鏈接右向外聯接是左向外聯接的反向聯接。將返回右表的所有行。如果右表的某行在左表中沒有匹配行,則將為左表返回空值。
FULL JOIN 或 FULL OUTER JOIN 全聯接完整外部聯接返回左表和右表中的所有行。當某行在另一個表中沒有匹配行時,則另一個表的選擇列表列包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。
熱門閱讀服務端開發95th 99th 是什么意思?
【緩存】緩存穿透、緩存雪崩、緩存擊穿
學習資料推薦
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44863.html
摘要:數據庫會以左邊為基礎,與右邊表做笛卡爾乘積。或左連接左向外聯接的結果集包括子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。將返回右表的所有行。如果表之間有匹配行,則整個結果集行包含基表的數據值。 題目 表1: Person +-------------+---------+ | 列名 | 類型 | +-------------+---------+ | P...
摘要:題目鏈接題目分析這個題目比較簡單,就是簡單的連表查詢。思路以表為出發點,于表。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 D91 175. Combine Two Tables 題目鏈接 175. Combine Two Tables 題目分析 這個題目比較簡單,就是簡單的連表查詢。 思路 以person表為出發點,于address表join。join依據是personId。 最...
閱讀 2664·2021-11-24 09:38
閱讀 1979·2019-08-30 15:53
閱讀 1234·2019-08-30 15:44
閱讀 3229·2019-08-30 14:10
閱讀 3578·2019-08-29 16:29
閱讀 1799·2019-08-29 16:23
閱讀 1099·2019-08-29 16:20
閱讀 1471·2019-08-29 11:13