2012-12-29 113 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