psql外键并通过它连接表

psql foreign key and join tables by it

我有 3 张桌子:

pet:
id | ...

vaccination:
id | petId | ...

visit:
id | petId | ...

vaccinationvisit 表中 petId 是外键。

当我尝试join时出现错误

select 
COALESCE(visit.petId, vaccination.petId) as petId,
GREATEST(visit.date, vaccination.date) as date
from visit
FULL JOIN vaccination on vaccination.petId = visit.petId

(select petId from vaccination)
union all
(select petId from visit)

错误是:

column "petid" doesn't exist
Hint: Possibly a column reference was intended on "vaccination.petId"

我知道它是由外键生成的某种 'virtual' 列。 但我不知道如何加入它。 感谢帮助! P.S。此表由 typeorm

生成

列、方案和 table 名称区分大小写,当您没有引号时,PostgreSQL 将使用您键入内容的小写版本。

所以使用“petId”、visit.“petId”和vaccination.“petId”来防止意外的小写。

您甚至可以决定始终将列、方案和 table 名称放在引号中,这样您就不会被这个问题搞砸了。例如“疫苗接种”。“petId”