我有以下内容:
select value1 from Table1 where id='123';
结果='foo'
然后我手动输入结果'foo'来设置变量@ v1:
SET @v1='foo';
然后我使用该变量来计算其他一些查询。
select value2 from Table2 where table2Id=@v1;
select value3 from Table3 where table3Id=@v1;
select value4 from Table4 where table4Id=@v1;
是否可以从第一个查询的结果中设置@ v1 qithout必须输入?像
SET @v1 = select value1 from Table1 where id='123';
答案 0 :(得分:0)
您可以加入表格:
select Table2.value2 from Table2 left join Table1 on Table2.table2Id = Table1.id
同样适用于其他表(表3,表4)也没问题。如果要将所有这些查询的结果作为一个表,请使用UNION。
答案 1 :(得分:0)
为什么不使用JOIN
作为
select
t2.value2 from Table2 t2
join Table1 t1 on t1.value1 = t2.table2Id
where t1.id = '123'
,这适用于所有带有join子句的表。
答案 2 :(得分:0)
声明@ v1 varchar(200)设置@vi =(从Table1中选择top 1 value1,其中id ='123' 从表2中选择value2,其中table2Id = @ v1