Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我可以用我将要内部连接的表为definite创建一个条件吗?_Mysql_Sql - Fatal编程技术网

Mysql 我可以用我将要内部连接的表为definite创建一个条件吗?

Mysql 我可以用我将要内部连接的表为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)

我的数据库中有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) 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
子句的右表中选择列