写在前面
-
难度:简单
题目
表1: Person
编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息:
FirstName, LastName, City, State
思路
用outer join即可,left join或者right join都一样。
SELECT FIRSTNAME,LASTNAME,CITY,STATE
FROM PERSON P LEFT JOIN ADDRESS A ON P.PersonId=A.PersonId
SELECT FIRSTNAME,LASTNAME,CITY,STATE
FROM ADDRESS A RIGHT JOIN PERSON P ON P.PersonId=A.PersonId
oracle还可以这么写
SELECT FIRSTNAME,LASTNAME,CITY,STATE
FROM ADDRESS A , PERSON P
where P.PersonId=A.PersonId(+)
但用下面的写法的时候提示超时了,不知所以
SELECT FIRSTNAME,LASTNAME,CITY,STATE
FROM ADDRESS A , PERSON P
where A.PersonId(+)=P.PersonId