CREATE TABLE student_activestudent AS
(
SELECT *
FROM
student
INNER JOIN
activestudent ON activestudent.studentnumber=student.studentnumber
);
我期待一个包含 2 列学生编号的表格,但我收到了重复错误 --> 重复列名称"学生编号">
数据库表必须具有唯一的列名。当您执行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]
例
选择学生.学生编号作为 stuNumber,活动学生.学生编号作为 actstuNumber