这有点奇怪,但我需要从两个具有给定唯一标识符的表中选择一个。让我们说表A看起来像:
ID CallNumber Caller
和表B看起来像:
ID CallNumber Caller
我有一个唯一的标识符,可以在任何一个中。我怎么能写一个select语句来返回这些列并显示表A或表B中的数据?到目前为止我想出的是:
SELECT
coalesce(a.ID,t.id) as ID
,coalesce(a.CallNumber,t.CallNumber) as CallNumber
,coalesce(a.Caller,t.Caller) as Caller
FROM tableA a
right join tableB b on b.ID = a.ID
where a.ID = '' or b.ID = ''
但如果ID存在于表A中,则仅返回唯一标识符。
答案 0 :(得分:1)
如果它需要是一个查询,那么您可以查询两个表并混搭结果。您无需为加入表格或其他逻辑而烦恼。
select
ID,
CallNumber,
Caller
from
tableA
where
ID = theID
union all -- adding 'all' avoids unnecessary sorting operation
select
ID,
CallNumber,
Caller
from
tableB
where
ID = theID