我正在运行一些查询,我想使用连接将其转换为单个查询我的第一个查询是
1) SELECT * FROM ACT_TABLE1 where node='5bbcdded' order by Instance_ID desc;
上述查询的输出如下
ID Instance_ID NODE
2326600581 23266005612 5bbcdded1
2326524592 23265245712 5bbcdded2
2326523503 23265234213 5bbcdded3
2326523004 23265229614 5bbcdded4
2) 现在,我抓住最上面的 Instance_ID
并运行另一个select查询,如下所示
SELECT * FROM ACT_TABLE2 where TOP_INST_ID = '23266005612';
在这里,可能有一种情况 select query
返回一个 null value
从上面的查询。那样的话,我就拿第二个最上面的 Instance_ID
并运行相同的select查询,如下所示
SELECT * FROM ACT_TABLE2 where TOP_INST_ID = '23265245712';
上述查询的输出只返回一行,如下所示
ID NEXT_ID TOP_INSTANCE_ID
232660056 232660056 232652457
3) 现在,我抓住最上面的 NEXT_ID
并运行另一个select查询,如下所示
SELECT * FROM ACT_TABLE3 where NEXT_ID = '232660056';
上述查询的输出只返回一行,如下所示
ID EXEP_ID NEXT_ID
232660072 232660139 232660056
4) 现在,我抓住最上面的 EXEP_ID
并运行另一个select查询,如下所示
SELECT field2 FROM ACT_TABLE4 where ID = '232660139';
上述查询的输出返回 field2
这是我的最终结果
换句话说,我想通过考试 node='5bbcdded'
在我的 first table
这样我就能得到 field2
从我的 fourth table
1条答案
按热度按时间fxnxkyjh1#
你能做到的
Inner Join
在所有表之间,使用它们的关系。然后,采用多级
Order By
从第一个表开始的子句(全部按降序排列,因为您希望从所有表中的最上面开始)。我们使用LIMIT 1
以获取排序后的第一行,这将是最上面的。Inner Join
将确保任何不匹配的行(null
将忽略。尝试: