我可以为表格确定条件我将内部加入吗?

时间:2017-06-10 15:25:13

标签: mysql sql

当我在表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

谢谢,原谅我的英语不好,我来自巴西,还在学习。

1 个答案:

答案 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子句中的右表中选择列。