首页 > 解决方案 > 如何在 SQL 中创建自联接视图

问题描述

在尝试创建以下查询的视图时,我遇到了一个错误。我有一个名为的表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 完全陌生。谁能帮我解决这个问题?

标签: mysqlsql

解决方案


您需要为列名提供别名,以便视图可以区分字段名。IE:

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;

推荐阅读