从包含可选值的表中选择

时间:2015-11-20 19:50:01

标签: sql database postgresql select

我有一个带有两个表的PostgreSQL:Person&地址。

表人员具有引用地址表的外键,但此字段是可选的(默认为NULL),因此“人员”不需要具有“地址”。

我想得到(使用SELECT查询)Person的所有注册表,无论他们是否有地址。我怎么能在一个查询中做到这一点?

2 个答案:

答案 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