Mysql 如何将相同结构的表合并为一个?
我有两个表,除了它们的名称之外,它们的结构都相同。我能把它们合并成一个吗?如何设计这个新桌子 尝试联合查询:Mysql 如何将相同结构的表合并为一个?,mysql,sql,Mysql,Sql,我有两个表,除了它们的名称之外,它们的结构都相同。我能把它们合并成一个吗?如何设计这个新桌子 尝试联合查询: SELECT Semeter, Grade FROM Student1 UNION ALL SELECT Semeter, Grade FROM Student2; 如果还希望跟踪结果集中每条记录来自的表原点,可以添加计算列: SELECT Semeter, Grade, 'Student1' AS Source FROM Student1 UNION ALL SELECT Semet
SELECT Semeter, Grade FROM Student1
UNION ALL
SELECT Semeter, Grade FROM Student2;
如果还希望跟踪结果集中每条记录来自的表原点,可以添加计算列:
SELECT Semeter, Grade, 'Student1' AS Source FROM Student1
UNION ALL
SELECT Semeter, Grade, 'Student2' FROM Student2;
如果要创建一个包含两个学生表内容的新表,请使用:
CREATE TABLE AllStudents (Semester INT, Grade INT);
INSERT INTO AllStudents (Semester, Grade)
SELECT Semeter, Grade FROM Student1
UNION ALL
SELECT Semeter, Grade FROM Student2;
插入表1
挑选*
来自表2
核实一下
表2 您可以创建一个包含id、student_name、semister和grade列的表student
您可以根据student_name列查询student1和student 2,这将保留不同表中的所有列: 如果两个表具有相同的列名,则可以合并它们。这基本上将student2中的数据添加到student1中:
SELECT Semester, Grade FROM student1
UNION ALL
SELECT Semester, Grade FROM student2;
你的问题没有那么精确。您想如何组合它们?只需发布当前数据表的图片和所需结果。创建新表以存储两个或多个不同表中的数据:
CREATE TABLE students (
StudentName VARCHAR(50),
Semester VARCHAR(50),
Grade VARCHAR(5));
创建唯一索引以确保只插入一条记录一次:
CREATE UNIQUE INDEX UniqueRecords
ON students (StudentName , Semester);
执行插入忽略,从单独的表插入到新的学生表中
注意:如果要在将来再次执行插入,则插入忽略以跳过新表中已存在的插入数据
我的意思是,我不想使用两个或多个表来显示相同类型的信息。如何设计一个可以包含这两个表中所有信息的新表?是否要将这些表永久合并到一个新表中,以克服当前结构中明显的设计缺陷?这里的大多数人希望示例表数据和预期结果是格式化文本,而不是图像或图像链接。。。请看一看。@user450201是否要创建一个新表来存储student1和student2中的所有数据,并将所有数据移动到新表中?
CREATE UNIQUE INDEX UniqueRecords
ON students (StudentName , Semester);
INSERT INTO students (StudentName, Semester, Grade)
SELECT 'Student1', Semester, Grade FROM student1;
INSERT INTO students (StudentName, Semester, Grade)
SELECT 'Student2', Semester, Grade FROM student2;