2016-07-10 36 views
0

我遇到了使用mysql和mphpmyadmin的小任務,我需要將兩個表記錄合併到一個表中,之後......但也希望結果指示這來自於表,像這樣:它是查看或加入我需要的這個mysql exersice

表1:表名: 「names1」

id code name number 
1 XA Mike 101 
2 DA Stel 344 
3 MB Dan 434 
4 TR Tina 321 

表2:表名: 「names2」

id code name number 
1 DC Man 121 
2 QZ Dan 989 
3 VN Was 912 

我需要的是結合他們在o NE表,選擇,查看...任何聲明,在我的腳本中使用......是這樣的:

tablename code name number 
names1 XA Mike 101 
names1 DA Stel 344 
names1 MB Dan 434 
names1 TR Tina 321 
names2 DC Man 121 
names2 QZ Dan 989 
names2 VN Was 912 

試圖加入和工會,失敗了,你建議創建一個視圖?以及你會如何建議完成?

+0

試試'union' of 2'select' – Iceman

+0

你的mysql版本是什麼? – motto

回答

1
select code, name, number, 'names1' as tablename from table1 
union 
select code, name, number, 'names2' as tablename from table2; 

也考慮VS union all工會之間的區別,因爲它涉及到愚弄(一般爲您喜歡的查詢其他工會)

+0

'union all'比'union'更受歡迎,因爲後者會導致刪除重複的開銷。 –

+0

是聯盟所有工作和添加薩蒂的建議我有第一列說names1然後列出所有記錄應該。謝謝薩蒂:) – Mike

1

如果你想給他們一個結果結合設置,那麼你將使用union all(如@Satty建議)。

不過,如果你想讓他們在一個表中,那麼你可以使用create table as

create table names as 
    select code, name, number from names1 union all 
    select code, name, number from names2; 

您還可以使用同一個邏輯視圖,但問題明確地說,「一對錶」。

+0

謝謝你,工會都爲我的情況工作,但也使用了來自Satty建議的'name1'有額外的列引用原來的表.. thakns – Mike

1

如果你想創建一個視圖這樣的:

CREATE VIEW names3 AS 
(SELECT code, 
    name, 
    number, 
    'names1' as tablename 
    from names1) 
UNION 
(select code, 
    name, 
    number, 
    'names2' as tablename 
    from names2); 

Here是小提琴。

+0

謝謝你的觀點設置,我會去工會現在都在爲之工作 – Mike