由于列名相同,无法创建视图(并且不能修改列名)

问题描述 投票:-1回答:2

我有以下查询:

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)的新手,只是学习它。

sql database postgresql view
2个回答
2
投票

视图中的列必须具有不同的名称。因此,分配新名称,例如:

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
投票

您可以使用别名来区分列名称:

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'
© www.soinside.com 2019 - 2024. All rights reserved.