我如何从 Postgres 中的 2 个不同的 table 中获取

How can I fetch from 2 different table in Postgres

我正在尝试结合使用 labeled2015labeled2019 如果 diseasetype = 3

这里是我的查询示例

SELECT * from labeled2019 labeled2015 inner join dataaaaa on diseasetype = 3 ;

这是我的表格:

labeled2015 样本:

labeled2019 样本:

dataaaaa table 为空。 顺便说一句,它没有必要将查询结果放入 dataaaaa table。显示结果就够了。

请注意,它给了我 [42702] 错误:列引用“疾病类型”不明确 错误。

预期结果:

获取diseasetype = 3的所有照片名称

photoname | diseasetype
32_left          3
asdf433sd        3

尝试使用 'union' 运算符。它可以将来自多个表的查询结果合并为一个结果。 所以查询看起来像这样:

SELECT * 
from labeled2015 
where diseasetype = 3
union
SELECT * 
from labeled2019 
where diseasetype = 3

查看文档:https://www.postgresql.org/docs/current/queries-union.html

由于您希望将两个表的条​​目作为单独的行获取,因此仅使用 UNION ALLUNION 而不是 JOIN 会更容易。

SELECT photoname, diseasetype FROM labeled2015 WHERE diseasetype = 3
UNION ALL
SELECT photoname, diseasetype FROM labeled2019 WHERE diseasetype = 3

UNION ALL 速度更快,应该是首选,但如果两个表中出现相同的条目,则不会删除重复项。因此,如果您想排除这种情况,请改用 UNION。 由于您将结果限制在疾病类型 = 3 的条目上,您甚至可以在机器人查询中写入 SELECT photoname, 3... 而不是列名。