CREATE TABLE student_activestudent AS
(
SELECT *
FROM
student
INNER JOIN
activestudent ON activestudent.studentnumber=student.studentnumber
);
我期望一个包含2列学生号的表格,但我收到了重复错误->列名'studentnumber'重复了
答案 0 :(得分:0)
数据库表必须具有唯一的列名。
当您执行select *
时,您将从所有表中获取所有列,并且studentnumber
同时存在于student
表和activestudent
表中。因此,要解决您的问题,请指定所需的列,而不要使用*
CREATE TABLE student_activestudent AS
(
SELECT
student.studentnumber,
..Other columns..
FROM
student
INNER JOIN
activestudent ON activestudent.studentnumber=student.studentnumber
);
答案 1 :(得分:0)
至少studentnumber
是重复的。通常,我强烈建议视图明确列出所有列。如果基础列发生更改,则可以保护视图。
也就是说,如果studentnumber
是 only 列,那么您可以这样做:
CREATE TABLE student_activestudent AS
SELECT *
FROM student s JOIN
activestudent ast
USING (studentnumber);
对于using
,*
不会重复加入键。
答案 2 :(得分:0)
您不能选择两个具有相同列名的表。
最好的方法是不选择*
按列选择,如果该列相同,则可以输入[as]
示例
选择student.studentnumber为stuNumber,activestudent.studentnumber为acttuNumber