情况:我有两个具有相同列名的表,称为“忠诚度编号”,我想使用此列作为主键来左连接两个表。
尝试按如下方式为列名称添加别名不起作用,因为 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
customer_flight_data.Loyalty_Number
我尝试从 table.column 中删除“`”,但随后我收到了
错误:无法识别的名称:customer_flight_data。
现在唯一有效的是:
SELECT Loyalty_Number FROM `case-study-airline-69374.customer_flight_activity.customer_flight_data`
正如 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