2017-01-18 57 views
0

假设我有两个不同的select语句,它们提供一列,每个列。 让我们假设SELECT语句提供以下资料:MYSQL - 从两个选择的表中插入结果

SELECT 1   SELECT 2 
|id|     |nr| 
----     ---- 
456     14 
234     5 
512     26 
678     67 
987     87 
632     24 

我试图找出如何使查询插入此数据象下面这样:

my_table 
| id | nr | col3 | ... 
    456 14  ... 
    234 5  ... 
    512 26  ... 
    678 67  ... 
    ... 

我不得不提的是在我选择我使用多行子查询。

谢谢你了!

+0

它们每个产生相同数量的行吗?两者之间有任何关系吗?在每个表中使用带有标识列的临时表,然后加入标识列上的2个表以插入“my_table”。 –

+0

是的,他们产生相同数量的行...他们之间没有关系 –

+0

那么你可以使用临时表,因为我建议? –

回答

0

在MySQL中,你可以使用变量枚举值,然后一个join

select . . . 
from (select s.*, (@rn1 := @rn1 + 1) as rn 
     from (<select 1>) s cross join 
      (select @rn1 := 0) params 
    ) s1 join 
    (select s.*, (@rn2 := @rn2 + 1) as rn 
     from (<select 2>) s cross join 
      (select @rn2 := 0) params 
    ) s2 
    on s1.rn = s2.rn; 

我建议把一个明确的order by在每个子查询。