【问题标题】:SQL - how to rename column being used on inner joinSQL - 如何重命名内部连接中使用的列
【发布时间】:2021-12-03 05:59:02
【问题描述】:

我在 Microsoft SQL Server Management Studio 中创建了一个视图,现在我想将它加入到正确的空间信息中。

我在下面创建了查询

select * from v_postal_address_view pa
INNER JOIN SPATIAL_INFO sp ON sp.ECAD_ID = pa.BUILDING_ID

这运行良好,因为 ECAD_ID 和 BUILDING_ID 已链接。但是,我现在想将结果另存为新视图,但不能,因为 v_postal_address_view 已经包含 ECAD_ID,因此禁止连接 SPATIAL_INFO 表 ECAD_ID,因为名称不是唯一的。

如何在视图内部连接期间重命名spatial_info 中的 ECAD_ID 列??

【问题讨论】:

  • 阅读手册和介绍重新加入语法和子查询/子选择和表别名(又名相关名称)和相关的可选列重命名。这是一个很容易找到的常见问题解答。 How to AskHelp center

标签: sql join inner-join


【解决方案1】:
CREATE VIEW RESOLVE_AMBIGUOUS_NAMES AS
    SELECT T1.id AS id_1,
           T2.id AS id_2
      FROM TABLE_1 T1
     INNER
      JOIN TABLE_2 T2
        ON T1.fk = T2.pk

【讨论】:

  • 我想要表 1 中的所有行。导致问题的是表 2 中列的重命名
  • @ioquitteoo 不确定“表 1 中的所有行”是什么意思。除了内部连接之外,这不会过滤掉任何行。大多数 sql 方言将支持 CREATE VIEW RESOLVE_AMBIGUOUS_NAMES AS SELECT T1.*, T2.id AS id_2 FROM TABLE_1 T1 INNER JOIN TABLE_2 T2 ON T1.fk = T2.pk
猜你喜欢
  • 1970-01-01
  • 2013-07-08
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 1970-01-01
  • 2016-10-23
相关资源
最近更新 更多