2012-12-29 137 views
1

我有两个表的列如下面所示: 表1:MySQL的合并多个表

name surname age 
---- ------- --- 
a   b  null 
c   d  null 

表2:

age 
--- 
1 
4 

我想将它们合并为第一个表(表1),如

name surname age 
---- ------- --- 
a   b  1 
c   d  4 

(它们具有相同的行数)我如何组合它们?

+4

uhmm什么是他们的关系? –

+0

你如何将'表1'中的用户与'表2'中的年龄连接起来?还是你想通过行号来做? – rae1

+0

关系是他们的行号。 – JoshuaJeanThree

回答

6

也许你想这个,

SELECT a.Name, a.SurName, b.Age 
FROM 
    (
    SELECT @row := @row + 1 RankNo, 
      Name, Surname 
    FROM Table1, (SELECT @row := 0) r 
) a 
    INNER JOIN 
    (
    SELECT @row1 := @row1 + 1 RankNo, 
      Age 
    FROM Table2, (SELECT @row1 := 0) r 
) b ON a.RankNo = b.RankNo 
+0

我们如何确定行将始终以相同的顺序返回?理论上mysql可以以任何顺序返回行,除非你通过 – fthiella

+0

@fthiella指定了一个订单* mysql可以以任何顺序返回行*。不。它取决于您首先设置了索引的字段。 –

+0

不知道是否有索引,行顺序无法确定。但我也不确定索引是否可以解决这个问题,当然MySql会使用索引来返回行和对行进行排序,但我不确定这是保证还是记录在某处。 – fthiella