当我在表1中进行咨询时,我的数据库中有3个表我需要检查1列,如果值为1或2,如果1我需要与表2进行内连接,否则如果列是2我需要使用表3进行内部联接。我可以在一个SQL查询中完成所有操作吗?
表1 ID 类型检查(1或2)if - table 1.type-check = 1 inner join table 2
else - table 1.type-check = 2内部联接表3
谢谢,原谅我的英语不好,我来自巴西,还在学习。答案 0 :(得分:0)
您无法使用inner join
执行此操作。但您可以使用left outer join
构建查询:
select t1.*, coalesce(t2.col1, t3.col1) as col1
from t1 left join
t2
on t1.type_check = 1 and t1.col = t2.col left join
t3
on t1.type_check = 2 and t1.col = t3.col;
请注意,您还需要从SELECT
子句中的右表中选择列。