使用DB2表: 这是在表格中手动完成的内容
select app_id from table_app where APP_NAME='App_Temp';
给我一个身份证,说它是234
我复制而不是:
select * form table_roles where role_app_id=234;
给我一排,这是我想要的最终结果。
有没有办法将第一个的结果保存到变量中,并且在没有使用局部变量之间的手动步骤的情况下进行第二个查询?
我知道,您可以通过两个表之间非常简单的连接来查询信息,但我想知道它如何与变量一起使用。有办法吗?
答案 0 :(得分:1)
只需插上即可:
select *
from table_roles
where role_app_id = (select app_id from table_app where APP_NAME = 'App_Temp');
如果可以有多个匹配,请使用in
代替=
。
您也可以将此短语称为加入:
select r.*
from table_roles r join
table_app
on r.role_app_id = a.app_id and APP_NAME = 'App_Temp';
但是,如果两个应用程序具有相同的名称,则可能会返回重复项。在这种情况下,请使用select distinct
:
select distinct r.*
from table_roles r join
table_app
on r.role_app_id = a.app_id and APP_NAME = 'App_Temp';