Mysql 我可以用我将要内部连接的表为definite创建一个条件吗?
我的数据库中有3个表,当我在表1中进行查询时,我需要检查1列的值是否为1或2,如果为1,我需要与表2进行内部联接,如果为2,我需要与表3进行内部联接。我可以在一个sql查询中完成这一切吗 表1 身份证件 类型检查(1或2) 如果-表1.1类型检查=1内部连接表2 else-表1.1型式检查=2内部连接表3Mysql 我可以用我将要内部连接的表为definite创建一个条件吗?,mysql,sql,Mysql,Sql,我的数据库中有3个表,当我在表1中进行查询时,我需要检查1列的值是否为1或2,如果为1,我需要与表2进行内部联接,如果为2,我需要与表3进行内部联接。我可以在一个sql查询中完成这一切吗 表1 身份证件 类型检查(1或2) 如果-表1.1类型检查=1内部连接表2 else-表1.1型式检查=2内部连接表3 谢谢,请原谅我的英语不好,我来自巴西,还在学习。你不能用内部连接来做这件事。但是您可以使用左外部联接构建查询: select t1.*, coalesce(t2.col1, t3.col1)
谢谢,请原谅我的英语不好,我来自巴西,还在学习。你不能用
内部连接来做这件事。但是您可以使用左外部联接构建查询
:
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
子句的右表中选择列。您不能使用内部联接执行此操作。但是您可以使用左外部联接构建查询
:
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
子句的右表中选择列