我有以下场景。我有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。对不起,如果重复没有找到任何匹配我需要的东西。
答案 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 = ?