我有一个临时查询,例如:
CREATE TEMPORARY TABLE IF NOT EXISTS table4 AS (select * from table1)
然后,我从查询中得到另一个表,例如:
select column from table2
我要做的是将此列连接为临时表上的新列。内部联接不起作用,因为它们没有公共栏 这就像是轴数= 0的python上的concatenate()。
我将不胜感激
答案 0 :(得分:1)
如果我正确理解,您想将第二个查询的合并结果添加为临时表的另一列。没有更多上下文就没有多大意义,因为您为什么要在每一行的新列上获得相同的结果。但是我的解决方案在这里:
CREATE TEMPORARY TABLE IF NOT EXISTS table4 AS
(
select
*,
(select group_concat(column) from table2 group by null) as concatcolumn
from
table1
)
我在group_concat上按NULL分组,以便它对所有行进行分组。在此“嵌套”内部(在列定义内部甚至将其称为嵌套的内部嵌套吗?),您可以在使该问题更有意义的条件处添加位置。希望此解决方案有帮助。干杯,
*****编辑****
基于OP的注释,并假设两个表的行均对齐(匹配的行具有相同的行号,但没有匹配的键)。这比我预期的要困难得多,因为它被标记为MySQL,但是此DBRM没有排名功能。这是我想出的未经测试的结果。
CREATE TEMPORARY TABLE IF NOT EXISTS table4 AS
(
select
t1.*,
t2.column
from
(
select t.*,@rownum := @rownum + 1 as rank from table1 t, (select @rownum := 0) r
) t1
join
(
select t.*,@rownum := @rownum + 1 as rank from table2 t, (select @rownum := 0) r
) t2
on
t1.rank = t2.rank
)