簡體   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