2017-04-06 8 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を2回返すようにしてください。

ビューにエイリアスを追加します。魅力として

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