我有以下查询:
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)
的新手,只是学习它。
视图中的列必须具有不同的名称。因此,分配新名称,例如:
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'
您可以使用别名来区分列名称:
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'