用表_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
我假定你知道UNION
和UNION ALL
之间的区别,union
带来了独特的记录,它是同UNION PERFORMED ON SETS
而union all
将带来重复的行也是如此。
在你的情况下,由于第一列区分行,所以即使与联合也会带来重复。
答
你可以使用
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
谢谢!这非常有帮助。 – hyeon
欢迎...将相关答案标记为已回答。 –