如何从多个选择查询中获取临时表中一行的列/字段数据?

时间:2019-06-06 07:40:48

标签: mysql sql

我希望两个选择查询的结果成为临时表中一行的不同列的数据。但不是第二行。

CREATE TEMPORARY TABLE t_temp_table 
(SELECT U.c_user_id, UL.c_timestamp FROM t_user U INNER JOIN t_user_log UL ON U.c_user_id = UL.c_user_id GROUP BY U.c_user_id LIMIT 1)
UNION 
(SELECT U.c_user_level_id, UL.c_task_id FROM t_user U INNER JOIN t_user_log UL ON U.c_user_id = UL.c_user_id GROUP BY U.c_user_id LIMIT 1)

我正在得到这个 enter image description here

c_user_id              c_timestamp
1                      2018-04-12 04:12:50
99                     1

我希望将其作为一行

c_user_id   c_timestamp           c_user_level_id       c_task_id 
1           2018-04-12 04:12:50   99                    1

2 个答案:

答案 0 :(得分:0)

首先,您需要使用联接合并两个表结果,然后将其插入。

看看sqlFiddle。 Sql Fiddle Example

希望此示例对您有帮助。

答案 1 :(得分:0)

在两个查询中,联接完全相同。连接条件和连接表相同。因此,您可以在一个查询中选择所有4列,而不用创建2个不同的查询,然后尝试合并结果

CREATE TEMPORARY TABLE t_temp_table 
(SELECT U.c_user_id, UL.c_timestamp, U.c_user_level_id, UL.c_task_id FROM t_user U INNER JOIN t_user_log UL ON U.c_user_id = UL.c_user_id GROUP BY U.c_user_id LIMIT 1);