BQ添加格式Table.column时无法识别列名

问题描述 投票:0回答:1

情况:我有两个具有相同列名的表,称为“忠诚度编号”,我想使用此列作为主键来左连接两个表。

尝试按如下方式为列名称添加别名不起作用,因为 BQ 会将“customer_flight_data.Loyalty_Number”插入到列中,而不是实际数字。

SELECT `customer_flight_data.Loyalty_Number` AS loyalty_number1,

FROM `case-study-airline-69374.customer_flight_activity.customer_flight_data`

输出: 列忠诚度_number1

  1. customer_flight_data.Loyalty_Number
    

我尝试从 table.column 中删除“`”,但随后我收到了

错误:无法识别的名称:customer_flight_data。

现在唯一有效的是:

SELECT Loyalty_Number FROM `case-study-airline-69374.customer_flight_activity.customer_flight_data` 
sql format
1个回答
0
投票

正如 nbk 建议的那样,您可以使用表的别名来标识列,也可以使用每列的完整表标识符,而不将该列包含到 qoutes 中。

--Complete Table identifier
SELECT `case-study-airline-69374.customer_flight_activity.customer_flight_data`.Loyalty_Number AS loyalty_number1,
FROM `case-study-airline-69374.customer_flight_activity.customer_flight_data`

--Alias
SELECT tablealias.Loyalty_Number AS loyalty_number1,
FROM `case-study-airline-69374.customer_flight_activity.customer_flight_data` as tablealias

--Example for the left join
SELECT 
  leftsidetable.Loyalty_Number AS loyalty_number1,
  rightsidetable.Loyalty_Number AS loyalty_number2
FROM `case-study-airline-69374.customer_flight_activity.customer_flight_data` as leftsidetable
LEFT JOIN `case-study-airline-69374.customer_flight_activity.customer_flight_data` as rightsidetable ON leftsidetable.loyalty_number = rightsidetable.loyalty_number

© www.soinside.com 2019 - 2024. All rights reserved.