Postgres:选择多个但显示不存在链接字段的记录



我有多个表在我的Postgres数据库是由一个名为id的字段链接。我的主表Person通过id链接到其他表Address,PhoneEmail

这行代码从数据库中的所有表中获取有关该人的信息:

SELECT *
FROM "Person" p, "Address" a
WHERE p.id = a.id

这并没有显示p.id存在的行,但是我们还没有那个特定的人的地址(无论如何都是a.id != p.id)。

如何使选择语句也返回a.id未发现包含p.id的字段?

您需要一个外部连接,这种连接只能通过在WHERE子句中去掉陈旧、过时和脆弱的隐式连接并使用合适的join操作符来实现:

select *
from "Person" p
left join "Address" a on p.id = a.id;

最新更新