问题描述
大家好,我正在对两个表进行内连接并从两个表中选择所有列。但是我得到了三个同名的列,如 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