mysql - 如何在 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 完全陌生。谁能帮我解决这个问题?
解决方案
您需要为列名提供别名,以便视图可以区分字段名。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;
推荐阅读
- amazon-web-services - 我无法使用 pscp 将文件传输到 AWS ec2。无法使用密钥文件 .ppk(无法打开文件)
- c# - 首次运行后 CollectionView 过滤器变慢
- javascript - 创建 req.cookie / 访问 document.cookie
- eclipse - 使用 IDE 集成在正在运行的 OSGi 应用程序中运行 JUnit 测试
- excel - 从字符串中删除除 a-zA-Z0-9 之外的所有特殊字符
- c++ - 指针保护和性能
- java - Java8中的函数如何获取Cls::func(Cls cls)的引用返回Object;
- java - ODI:使用一个创建的包集成多个 .xml 文件
- wpf - Wpf 以渐变为背景的重复线条
- java - intellij vs eclipse中的Java代码生成冲突