SQL-Duplicate列名

时间:2016-05-25 07:01:13

标签: sql alias outer-join

我正在使用SQL开发人员,我正在尝试在两个表上进行外连接。它显示的错误是"重复的列名称"。我比较使用了表名,但它仍然给出了错误。代码如下:

CREATE VIEW OECD_VIEW AS
SELECT * FROM DM_OECD_GDP FULL OUTER JOIN DM_OECD_DOCTORS 
ON DM_OECD_GDP.DATA_YEAR = DM_OECD_DOCTORS.DATA_YEAR;

我听说过这个错误可以通过别名来解决,但我不知道如何在比较时使用别名。可以这样做吗?

由于

3 个答案:

答案 0 :(得分:3)

您必须从具有相同名称的表和别名字段显式命名返回的字段,例如:

CREATE VIEW OECD_VIEW AS
SELECT DM_OECD_GDP.DATA_YEAR AS GDP_DATA_YEAR,
       DM_OECD_DOCTORS.DATA_YEAR AS DOC_DATA_YEAR,
       ... rest of the fields here
FROM DM_OECD_GDP 
FULL OUTER JOIN DM_OECD_DOCTORS 
ON DM_OECD_GDP.DATA_YEAR = DM_OECD_DOCTORS.DATA_YEAR;

答案 1 :(得分:0)

如果两个表都有相同的列名,可能是外键,不要使用*,手动选择列名

table_one - ID,Name
table_two - ID,SecondName

select table_one.ID,table_one.Name,table_two.ID as ID2,
  table_two.SecondName full outer join on table_one.ID=table_two.ID

答案 2 :(得分:0)

这是使用别名和完全外部联接创建视图的通用查询:

create view v6 as select t1.c1, t2.c2 from t1 FULL OUTER JOIN t2 on t1.id = t2.id;