Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在SQL中创建视图-重复字段错误_Mysql_Sql - Fatal编程技术网

Mysql 在SQL中创建视图-重复字段错误

Mysql 在SQL中创建视图-重复字段错误,mysql,sql,Mysql,Sql,嘿,我正在尝试通过完成在线问题来学习SQL,我正在尝试创建一个视图 我已经创建了一个有效的SELECT查询,现在正在尝试将其转换为视图,但在按照联机说明并输入应该创建视图的脚本时,我发现了重复字段错误 我已经研究过了,可能是doctor.fullname作为重复字段,但这是另一个表中的字段。Andway我已删除并仍在尝试,但错误仍然出现。 我知道可能有一个简单的解决办法,很抱歉打扰你,但这将是必须感谢 CREATE VIEW patient_registration_form AS SELECT

嘿,我正在尝试通过完成在线问题来学习SQL,我正在尝试创建一个视图

我已经创建了一个有效的SELECT查询,现在正在尝试将其转换为视图,但在按照联机说明并输入应该创建视图的脚本时,我发现了重复字段错误

我已经研究过了,可能是doctor.fullname作为重复字段,但这是另一个表中的字段。Andway我已删除并仍在尝试,但错误仍然出现。 我知道可能有一个简单的解决办法,很抱歉打扰你,但这将是必须感谢

CREATE VIEW patient_registration_form
AS
SELECT 
     patient.patient_id, 
     patient.nok_no,
     patient.f_name, 
     patient.s_name, 
     patient.sex, 
     patient.dob, 
     patient.marital_status, 
     patient.date_registered, 
     nok.tel_no, 
     nok.full_name, 
     nok.address, 
     nok.relationship, 
     doctor.doctor_id,
     doctor.clinic_no, 
     doctor.full_name, 
     doctor.address
FROM doctor, patient, nok
WHERE doctor.doctor_id = patient.doctor_id
AND nok.nok_no = patient.nok_no;

您将返回几个同名的列。。。全名和地址。。。尽管他们来自不同的桌子。在这种情况下,您必须为他们指定不同的别名:

SELECT 
     patient.patient_id, 
     patient.nok_no,
     patient.f_name, 
     patient.s_name, 
     patient.sex, 
     patient.dob, 
     patient.marital_status, 
     patient.date_registered, 
     nok.tel_no, 
     nok.full_name as nok_full_name, 
     nok.address as nok_address, 
     nok.relationship, 
     doctor.doctor_id,
     doctor.clinic_no, 
     doctor.full_name as doctor_full_name, 
     doctor.address as doctor_address

你有两个全名。。。一个代表nok.全名,一个代表医生.全名。其中一个需要重命名,例如nok.full\u name为nok\u full\u name。

我在这个查询中仍然看到doctor.full\u name与nok.full\u name冲突。您可以将这两个名称中的一个或两个都别名为,例如,doctor.full_name为doctorfull_name,请停止使用这种可怕的隐含连接语法。这是一个SQL反模式,20年前就被替换了@HLGEM你知道我看到了很多,尤其是mySQL。不知道为什么;我想知道一些教程是否显示了这一点。隐含的连接语法是什么,以便我将来了解,谢谢