2017-04-25 78 views
1

我想聯合兩個表(Student1,Student2)。用表_name列聯合兩個表

1 - Student1

| student_code | name | 
-------------------------- 
| 1   | katia | 
| 2   | roger | 
| 3   | ken | 

2 - STUDENT2

| student_code | name | 
-------------------------- 
| 3   | katia | 
| 4   | roger | 
| 5   | ken | 

然後我希望得到結果是這樣的。

結果

|table_name| student_code | name | 
------------------------------------- 
|Student1 | 1   | katia | 
|Student1 | 2   | roger | 
|Student1 | 3   | ken | 
|Student2 | 3   | katia | 
|Student2 | 4   | roger | 
|Student2 | 5   | ken | 

我希望只使用ANSI SQL。

回答

1
select 'Student1' AS table_name,student_code,name from student1 
union 
select 'Student2' AS table_name,student_code,name from student2 

我假定你知道UNIONUNION ALL之間的區別,union帶來了獨特的記錄,它是同UNION PERFORMED ON SETSunion all將帶來重複的行也是如此。

在你的情況下,由於第一列區分行,所以即使與聯合也會帶來重複。

+0

謝謝!這非常有幫助。 – hyeon

+0

歡迎...將相關答案標記爲已回答。 –

4

你可以使用

SELECT 'Student1' AS table_name, student_code, name FROM Student1 
UNION ALL 
SELECT 'Student2' AS table_name, student_code, name FROM Student2 
0
Use UNION ALL statement : 

SELECT 'Student1' as table_name, student_code, name FROM Student1 
UNION ALL 
SELECT 'Student2' as table_name, student_code, name FROM Student2