Sql 如何基于“if-else”条件连接不同的表
如果候选人的状态为“独立”,我想将候选人表与符号表联接;如果候选人的状态为“政党”,我想将候选人表与政党表联接 sql中是否有任何方法可以执行这样的查询,或者您是否可以建议任何其他解决方案Sql 如何基于“if-else”条件连接不同的表,sql,if-statement,join,Sql,If Statement,Join,如果候选人的状态为“独立”,我想将候选人表与符号表联接;如果候选人的状态为“政党”,我想将候选人表与政党表联接 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_i
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
先谢谢你 您可以在“从”中使用“左连接”,然后在“选择”中合并:
由于c.status上的条件,合并从匹配表中选择只有一个可以匹配的列的值。您可以在from中使用left join,然后在select中合并:
由于c.status上的条件,合并从匹配表中选择只有一个可以匹配的列的值
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';