Создание представления в SQL - ошибка повторяющихся полей - PullRequest
0 голосов
/ 02 марта 2012

Привет, я пытаюсь выучить 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;

Ответы [ 2 ]

2 голосов
/ 02 марта 2012

Вы возвращаете несколько столбцов с одинаковыми именами ... full_name и address ... даже если они из разных таблиц. В этом случае вы должны дать им разные псевдонимы:

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
0 голосов
/ 02 марта 2012

У вас есть два full_name в списке ... один для nok.full_name и один для doctor.full_name. Нужно переименовать, например, nok.full_name as nok_full_name.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...