-
問題
表格:Person
+-------------+---------+
| 列名 | 類型 |
+-------------+---------+
| PersonId | int |
| FirstName | varchar |
| LastName | varchar |
+-------------+---------+PersonId 是該表的主鍵(具有唯一值的列)。
此表包含一些人的 ID 及其姓氏和名字的信息。表格:Address
+-------------+---------+
| 列名 | 類型 |
+-------------+---------+
| AddressId | int |
| PersonId | int |
| City | varchar |
| State | varchar |
+-------------+---------+AddressId 是該表的主鍵(具有唯一值的列)。
此表的每一行都包含 PersonId 對應的人的城市和州信息。任務
編寫解決方案,查詢並返回 Person 表中每個人的姓氏、名字、城市和州。
如果 PersonId 在 Address 表中沒有對應的地址,則其城市和州的值應顯示為 NULL。
以任意順序返回結果表。結果格式
以下為結果格式的示例:
示例 1:
輸入:
Person 表:
+----------+----------+-----------+
| PersonId | LastName | FirstName |
+----------+----------+-----------+
| 1 | Wang | Allen |
| 2 | Alice | Bob |
+----------+----------+-----------+Address 表:
+-----------+----------+---------------+------------+
| AddressId | PersonId | City | State |
+-----------+----------+---------------+------------+
| 1 | 2 | New York City | New York |
| 2 | 3 | Leetcode | California |
+-----------+----------+---------------+------------+輸出:
+-----------+----------+---------------+----------+
| FirstName | LastName | City | State |
+-----------+----------+---------------+----------+
| Allen | Wang | NULL | NULL |
| Bob | Alice | New York City | New York |
+-----------+----------+---------------+----------+解釋
• PersonId = 1:在 Address 表中沒有對應的地址,所以其城市和州顯示為 NULL。 • PersonId = 2:在 Address 表中有對應的地址,返回其城市和州資訊。
解答
SELECT P.firstName, P.lastName, A.city, A.state FROM Person P LEFT JOIN Address A ON P.personId = A.personId;