2017-04-06 146 views
0

我不应该有这个错误。 这里是代码重复的列名称MySQL

drop database if exists myDB; 
CREATE DATABASE IF NOT EXISTS myDB; 
USE myDB; 

CREATE TABLE teacher(
tId int auto_increment primary key, 
fname varchar(50), 
lname varchar(50), 
sId varchar(50) 
); 


CREATE TABLE student(
sId varchar(50) not null primary key, 
fname varchar(50), 
lname varchar(50) 
); 


ALTER TABLE teacher 
    ADD foreign key (sId) references student(sId); 

insert into student values ('123', 'a', 'aa'); 
insert into student values ('456', 'b', 'bb'); 
insert into teacher (fname, lname, sId) values ('t', 'tt', '123'); 
insert into teacher (fname, lname, sId) values ('x', 'xx', '456'); 



create or replace view showTeachersAndStudents as 
    select teacher.fname, teacher.lname, student.sId, student.fname, student.lname 
       from teacher join student on teacher.sId = student.sId; 

的错误:错误代码:1060重复列名“FNAME”

请你帮忙,非常感谢你。

回答

4

您的看法尝试返回两次fnamelname

添加别名到您的视图:

create or replace view showTeachersAndStudents as 
    select teacher.fname fname_teacher, 
      teacher.lname lnamet_teacher, 
      student.sId, 
      student.fname fname_student, 
      student.lname lname_student 
    from teacher 
    join student on teacher.sId = student.sId; 
+0

作品魅力..感谢一百万。我错过了这件事 – Yahya

+1

我很高兴能够帮助。 – McNets