如何根据表中的字段去查询其它表中数据
现在有如下表
我有三个表,分别为 tb_result表、 tb_indoor表、 tb_outdoor表
tb_result 表中有如下数据
work_id | type | 其他数据 |
---|---|---|
2020001 | 1 | %%%%% |
2020002 | 0 | ********* |
2020003 | 1 | *********** |
2020004 | 0 | ********** |
在type字段中,1代表outdoor,0代表outdoor
tb_indoor 表中有如下数据
id | work_id |
---|---|
1 | 2020002 |
2 | 2020004 |
tb_outdoor中有如下数据
id | work_id |
---|---|
1 | 2020001 |
2 | 2020003 |
现在我要做的是根据tb_result中的type字段,分别到tb_indoor和tb_outdoor中查询work_id所对应的id字段。
假设我要查询从tb_result中查询工号为2020001的所有的信息,包括他在tb_indoor或者tb_outdoor的id。我就要根据tb_result中type这个字段分别到tb_indoor或者tb_outdoor的查询id,那么SQL语句可以这样写:
select
work_id,
其他数据,
//如果tb_result=1 就去tb_outdoor 中查询数据
case when type=1 then (select id from tb_outdoor where work_id='2020001')
//否则去tb_indoor中查询数据
else (select id from tb_indoor where work_id='2020001')
end as id//将字段命名为id
from tb_result
where work_id='2020001'
SQL if 和 case when查询示例: 看这里.
参考文章 这儿.