如何从查询结果中设置变量?

时间:2015-03-18 11:51:28

标签: mysql sql

我有以下内容:

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';

3 个答案:

答案 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