如何从表中选择行,但如果该表中不存在,请从不同的表中选择?

时间:2015-10-22 15:59:13

标签: postgresql postgresql-9.3

这可能是一个非常简单的问题,我看起来很过分,但我有这个问题:

SELECT is_accountant from deleted_users where customer_id='cus_4znUZe3lAy26FT' 

(客户ID会有所不同,我正在使用节点js脚本来获取一堆不同的客户ID,以确定他们是否是会计师)

如果没有结果,我想在一个名为$InstallProcess = ([WMICLASS]"Win32_Process").Create($InstallString) Wait-Process -Id $InstallProcess.ProcessId 的表中搜索相同的客户ID,即:

Wait-Process

有没有办法在Postgresql中执行此操作?

2 个答案:

答案 0 :(得分:2)

SELECT coalesce(u.is_accountant, d.is_accountant)
from deleted_users d
full outer join users u on u.id = d.id
where 'cus_4znUZe3lAy26FT' in (d.customer_id, u.customer_id)

答案 1 :(得分:1)

SELECT is_accountant from users where customer_id='cus_4znUZe3lAy26FT' 

union all

SELECT is_accountant from deleted_users where customer_id='cus_4znUZe3lAy26FT'
and not exists 
(SELECT is_accountant from users where customer_id='cus_4znUZe3lAy26FT')

或者,如您有兴趣知道用户“是(或曾)”会计师: (用户在哪个表中是否重要?同意吗?)

SELECT is_accountant from users where customer_id='cus_4znUZe3lAy26FT' 
union
SELECT is_accountant from deleted_users where customer_id='cus_4znUZe3lAy26FT'