繁体   English   中英

为什么 Big Query 在使用 Join 时创建一个新列而不是连接两列?

[英]Why is Big Query creating a new column instead of joining two columns when using a Join?

当我在 BigQuery 中使用 Join 时,它会完成它,但会创建一个名为 Id_1 和 Date_1 的新列,其中包含来自主键的相同信息。 什么会导致这个? 这是代码。

SELECT 
  *
FROM
  `bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`
JOIN
  `bellabeat-case-study-373821.bellabeat_case_study.sleep_day`
ON
  `bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`.Id = `bellabeat-case-study-373821.bellabeat_case_study.sleep_day`.Id
  AND `bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`.Date = `bellabeat-case-study-373821.bellabeat_case_study.sleep_day`.Date

我进行了查询并希望表通过IdDate的主键连接,但这反而创建了两个具有相同信息的新列。

当您在select 列表中使用*时, JOIN子句的ON变体会生成结果集中两个表的所有列。 如果两边都有同名的列,那么两者都会显示在结果中 [名称略有不同],如您所见。

您可以改用JOIN子句的USING变体,它合并列并为USING子句中提到的每一列只生成一个结果列。 这可能就是你想要的。 请参阅BigQuery - INNER JOIN

您的查询可以采用以下形式:

SELECT 
  *
FROM
  `bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`
JOIN
  `bellabeat-case-study-373821.bellabeat_case_study.sleep_day`
USING (Id, Date)

注意:只有当您要加入的列具有完全相同的名称时,才能使用USING 例如,如果列在一个表中称为id而在另一个表中称为employee_id ,则无法使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM