题目
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State
数据结构
Create table Person (PersonId int, FirstName varchar(255), LastName varchar(255))
Create table Address (AddressId int, PersonId int, City varchar(255), State varchar(255))
insert into Person (PersonId, LastName, FirstName) values ('1', 'Wang', 'Allen')
insert into Address (AddressId, PersonId, City, State) values ('1', '2', 'New York City', 'New York')
关键知识点
使用 LEFT JOIN 关键字
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
用法示例
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name = table_name2.column_name
本题答案
SELECT A.FirstName,A.LastName,B.City,B.State
FROM Person A
Left Join Address B on A.PersonId = B.PersonId