Невозможно создать представление из-за одинаковых имен столбцов (и изменение имени столбца не вариант) - PullRequest
0 голосов
/ 13 апреля 2020

У меня следующий запрос:

SELECT e.fname, e.lname, s.fname, s.lname, e.salary
FROM employee e JOIN
     employee s
     ON s.ssn = e.super_ssn JOIN
     department d 
     ON e.dno = d.dnumber
WHERE d.dname = 'Research'

Это работает замечательно для моего намерения. Но я хотел создать View этого, чтобы объект выбирался вместо запроса, который каждый раз нужно запускать снова. Проблема в том, что всякий раз, когда я пытался отправить этот запрос с помощью CREATE VIEW <name>, я получаю следующую ошибку: column "fname" specified more than once.

Я новичок в SQL (Postgres), просто изучаю его.

Ответы [ 2 ]

2 голосов
/ 13 апреля 2020

Столбцы в представлении должны иметь разные имена. Итак, назначьте новые имена, такие как:

SELECT e.fname, e.lname,
       s.fname as supervisor_fname, s.lname as supervisor_lname,
       e.salary
FROM employee e JOIN
     employee s
     ON s.ssn = e.super_ssn JOIN
     department d 
     ON e.dno = d.dnumber
WHERE d.dname = 'Research'
1 голос
/ 13 апреля 2020

Вы можете использовать псевдонимы, чтобы различать имена столбцов:

CREATE VIEW view_name as
SELECT e.fname e_fname, e.lname e_lname, s.fname s_fname, s.lname s_lname, e.salary
FROM employee e JOIN
     employee s
     ON s.ssn = e.super_ssn JOIN
     department d 
     ON e.dno = d.dnumber
WHERE d.dname = 'Research'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...