用表_name列联合两个表

问题描述:

我想联合两个表(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。

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

欢迎...将相关答案标记为已回答。 –

你可以使用

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

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