可以使用 SQL 的 LEFT JOIN 来解决这个问题。
以下是 SQL 解决方案:
SELECT p.FirstName, p.LastName, a.City, a.State
FROM Person p
LEFT JOIN Address a
ON p.PersonId = a.PersonId;
解析:
- LEFT JOIN: 以
Person
表为主表,左连接Address
表,确保Person
表的所有数据都被保留。 - ON 关联条件:
Person.PersonId = Address.PersonId
,保证正确匹配地址数据。 - 如果
Address
表中没有对应的PersonId
,City
和State
将返回NULL
,符合题目要求。
这个查询将返回 FirstName
、LastName
、City
和 State
,即使 Address
表中没有匹配项,也会显示 NULL
。