Postgres SQL SELECT数据来自表中存在ID的条目

时间:2017-06-20 09:04:57

标签: sql postgresql select

我有以下场景。我有3个具有以下结构的表。

TABLE A
 -entry_id (PRIMARY KEY, INTEGER)

TABLE B 
 -entry_id (FOREIGN_KEY -> TABLE A)
 -content (TEXT)

TABLE C
  -entry_id (FOREIGN_KEY -> TABLE A)
  -content (INTEGER)

我想从表B或表C中检索内容单元格值。该值可以只在一个表中。因此,表B或C表示具有给定entry_id的条目。

PS。对不起,如果重复没有找到任何匹配我需要的东西。

2 个答案:

答案 0 :(得分:1)

如果它一次只能存在于一个表中,请使用联合

select a1.entry_id, b2.content
from TableA a1
inner join TableB b2
on a1.entry_id = b2.entry_id

union -- This removes any duplicates. Use UNION ALL to show duplicates

select a1.entry_id, c3.content::text
from TableA a1
inner join TableC c3
on a1.entry_id = c3.entry_id

答案 1 :(得分:1)

如果我正确理解,你需要这样的东西:

select entry_id, content::text from TABLEB where entry_id = ?
union all
select entry_id, content::text from TABLEC where entry_id = ?
union all
select entry_id, content::text from TABLED where entry_id = ?