2013-08-02 118 views
1

我想在一個表中結合兩個table2。MySQL結合兩列三列

我試圖在MySQL中使用聯合,但它沒有成功。

我的編碼:

Select id,name; 
union all 
select id, name,sex; 

的樣本數據:

TABLE_1

ID, Name 
-------- 
1 JJ 
3 PP 

表2,我的需求應該像

ID, Name, Sex 
------------- 
33 A  M 
22 B  F 

結果:

ID, Name, Sex, 
1 JJ 
3 PP 
33 A  M 
22 B  F 

我們可以在mysql存儲過程中做到這一點嗎?

+0

是什麼UNION ALL的理論定義說? – cjava

回答

0

UNION [ALL]結合的兩個結果集的列數及其類型應該相同。話雖這麼說嘗試

SELECT id, name, NULL sex 
    FROM Table1 
UNION ALL 
SELECT id, name, sex 
    FROM Table2 

輸出:

 
| ID | NAME | SEX | 
---------------------- 
| 1 | JJ | (null) | 
| 3 | PP | (null) | 
| 33 | A |  M | 
| 22 | B |  F | 

這裏是SQLFiddle演示

進一步閱讀

我們可以在mysql存儲過程中做到這一點嗎?

是的,你可以,如果你必須。

+0

有幫助嗎?你的問題需要更多幫助嗎? – peterm

0

在sql語句中使用'UNION'操作符時,兩個組合表(結果集)必須具有相同的列數和類型。否則,語句將失敗,因爲服務器不能決定如何將組合到兩個表中。 所以你需要弗里斯特表人爲地創造第三列,因此其列集相匹配thse在第二個表:

SELECT id,name,'' AS sex FROM Table_1 UNION SELECT id, name, sex FROM Table_2