CREATE TABLE student_activestudent AS
(
SELECT *
FROM
student
INNER JOIN
activestudent ON activestudent.studentnumber=student.studentnumber
);
我期待一个包含2列studentnumber的表,但我收到了Duplicate错误 - >重复列名'studentnumber'
数据库表必须具有唯一的列名。当您执行select *
时,您将获得所有表中的所有列,studentnumber
表和student
表中都存在activestudent
。因此,要解决您的问题,请指定您想要的列而不是*
CREATE TABLE student_activestudent AS
(
SELECT
student.studentnumber,
..Other columns..
FROM
student
INNER JOIN
activestudent ON activestudent.studentnumber=student.studentnumber
);
至少,studentnumber
是重复的。一般来说,我强烈建议视图列出所有列。如果基础列发生更改,这将保护视图。
也就是说,如果studentnumber
是唯一的专栏,那么你可以这样做:
CREATE TABLE student_activestudent AS
SELECT *
FROM student s JOIN
activestudent ast
USING (studentnumber);
使用using
,*
不会重复连接键。
您不能选择具有相同列名称的两个表。
最好的方法是不要选择*
按列选择,如果列相同,则可以[as]
例
将student.studentnumber选为stuNumber,将activestudent.studentnumber选为actstuNumber