如果候选人的状态为“独立”,我希望将候选人表与符号表联系起来,如果候选人的状态是“派对”,我希望与派对表联系
在sql中有没有办法执行这样的查询,或者你可以建议任何其他解决方案。
Example:
Select * from candidate c
if c.status='party'
JOIN party p on p.party_id = c.party_id
else if c.status='independent'
JOIN symbol s on s.symbol_id = c.symbol_id
提前谢谢你。
答案 0 :(得分:0)
您可以使用left join
中的from
,然后使用coalesce()
中的select
:
Select c.*, coalesce(c.col1, s.col1) as col1, . . .
from candidate c left join
party p
on p.party_id = c.party_id and c.status = 'party' left join
symbol s
on s.symbol_id = c.symbol_id and c.status = 'independent';
coalesce()
从匹配表中选择列的值(由于c.status
上的条件,只有一个可以匹配。)