mysql - 使用来自 1 个表的 1 列的变量的三个 MySQL 查询需要解析到临时表中

标签 mysql variables select subquery temp-tables

我了解 T-SQL,但对 MySQL 还很陌生。我真的很想做这样的事情,也许使用子查询,也许使用临时表,可能在例程中。每个选择的结果有多行,行数不同。

create procedure procname

select col1 into @var1 from t1 inner join t2 on t1.id = t2.id where t2.col2 = 1;
select col1 into @var2 from t1 inner join t2 on t1.id = t2.id where t2.col2 = 2;
select col1 into @var3 from t1 inner join t2 on t1.id = t2.id where t2.col2 = 3;

create temporary table tmpT (col1,col2,col3) insert (@var1, @var2, @var3);
select * from tmpT;

但是我尝试的一切都会引发错误。如果已经有人问过这个问题,我深表歉意,但我找不到任何人提出这个问题的帖子。哦,顺便说一句,我使用的是 phpmyadmin,mysql 版本 5.6.x

最佳答案

您可以将 MAXCASE 语句结合使用:

select max(case when t2.col2 = 1 then col1 end) as col1, 
       max(case when t2.col2 = 2 then col1 end) as col2, 
       max(case when t2.col2 = 3 then col1 end) as col3
from t1 inner join t2 on t1.id = t2.id
where t2.col2 in (1,2,3)

关于mysql - 使用来自 1 个表的 1 列的变量的三个 MySQL 查询需要解析到临时表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922403/

相关文章:

php - 在 PHP 中使用 MySQL 和 MSSQL 选择灵活性

java - 为什么 boolean 变量不显示 false 的任何结果?

mysql - 如何在 MySQL 中对从开始到指定日期的总计进行 SELECT?

c++ - 在 C++ 复杂性和实现中选择位 vector

mysql - 每个派生表必须有自己的别名 - 使用多个 SELECT 语句时出错

php - 如何使用 PHP 将 MySQL 表转换为 JSON?

php - 获取所选下拉列表的值以与另一个下拉列表进行比较

php - 婚礼网站RSVP数据库

objective-c - 如何在 Objective-C 中将本地 "variables"声明为 final?

c - 为什么星号在变量名之前,而不是在类型之后?