我有一个带有两个表的PostgreSQL:Person&地址。
表人员具有引用地址表的外键,但此字段是可选的(默认为NULL),因此“人员”不需要具有“地址”。
我想得到(使用SELECT查询)Person的所有注册表,无论他们是否有地址。我怎么能在一个查询中做到这一点?
答案 0 :(得分:1)
您想使用LEFT JOIN,它返回第一个表中的所有行,无论是否在连接表中找到匹配的行。
另请参阅:http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/
SELECT *
FROM Person p
LEFT JOIN Address a
ON p.Address_ID = a.Address_ID
答案 1 :(得分:1)
尝试使用左连接,如下所示:
select * from table1 left join table2 on table1.id = table2.id