在尝试创建以下查询的视图时,我会遇到一个错误。我有一张名叫student的桌子,我想要一个名为birthday_twins的视图,里面有两个生日双胞胎的名字和道布。
CREATE VIEW birthday_twins AS
SELECT s.student_name,p.student_name,s.date_of_birth
FROM student s,student p
WHERE s.student_id <> p.student_id AND s.date_of_birth=p.date_of_birth
GROUP BY s.date_of_birth;错误代码: 1060重复列名'student_name‘
我对sql完全陌生。有人能帮我解决这个问题吗?
发布于 2020-02-22 17:17:47
如果您希望在同一天出生的人成双成对,请使用:
CREATE VIEW birthday_twins AS
SELECT s1.student_name as name1,
s2.student_name as name2,
s1.date_of_birth
FROM student s1 JOIN
student s2
ON s1.student_id < s2.student_id AND
s1.date_of_birth = s2.date_of_birth ;备注:
FROM子句中使用逗号。始终使用正确、显式、necessary.JOIN语法。视图返回的JOIN必须有不同的名称,所以使用as来重命名列。<而不是<>,这样就不会得到反向对(除非您想两次列出对)。H 216F 217发布于 2020-02-22 16:59:41
您需要为列名提供别名,以便视图能够区分字段名。即:
CREATE VIEW birthday_twins AS
SELECT s.student_name name1,p.student_name name2,s.date_of_birth
FROM student s,student p
WHERE s.student_id <> p.student_id
AND s.date_of_birth=p.date_of_birth
GROUP BY s.date_of_birth;https://stackoverflow.com/questions/60354516
复制相似问题