获取其他“对象/记录”作为另一个“列/属性”的属性

时间:2019-02-22 10:04:59

标签: sql postgresql postgresql-10

我有3张桌子:

Item和OwnerImage具有Owner的外键。并非所有Owner都有Item

Item

id  name    owner_id (fk)
1   alpha   1
2   beta    1


Owner

id name
1   owner1
2   owner2

OwnerImage

id  name    owner_id (fk)
1   image1   1
2   image2   1

我想获取所有项目的列表,以及它们的Owner和OwnerImage,可以通过联接来完成。

但是有可能从数据库中获得所有者作为Item的“财产”:

Item.Owner.OwnerImage(类似于对象)

此刻,我正在执行3个查询,并使用代码(python)中的loops进行匹配,但是我想知道是否可以使用一个查询;

1 个答案:

答案 0 :(得分:1)

您可以使用join在存在关系的另一个表中为给定值选择数据:

select owner
from owner o1
inner join ownerimage o2
on o2.owner_id = o1.id

不确定EVENT与此如何联系,但这应该可以帮助您入门