在Postgres中加入两个表后如何为同名列提供别名

问题描述

大家好,我正在对两个表进行内连接并从两个表中选择所有列。但是我得到了三个同名的列,如 id、created_at 和 updated_at。

查询

SELECT addresses.*,facilities.* FROM facilities
      INNER JOIN addresses
      ON facilities.main_address_id = addresses.id

在选择所有带有 * 的列时,是否有任何可能的方法可以为上述具有相同名称的列提及别名?

任何形式的帮助将不胜感激!谢谢!

解决方法

不,除了分别为每一列设置别名之外,您不能这样做。

但是如果您的查询是重复的,您可以创建 VIEW:

CREATE OR REPLACE VIEW facilities_addresses AS
SELECT 
    addresses.column AS "addresses_column",facilities.column AS "facilities_column"
FROM facilities
    INNER JOIN addresses ON (facilities.main_address_id = addresses.id)

然后你可以查询:

SELECT * FROM facilities_addresses
,

是的,你可以

SELECT 
   addr.id as addressesId,addr.created_at as addresses_created_at,addr.updated_at as addresses_update_at,fac.id as facilitiesId,fac.created_at as facilities_created_at,fac.updated_at as facilities_updated_at FROM facilities as fac
      INNER JOIN addresses as addr
      ON facilities.main_address_id = addresses.id