我有一個資料集(範例 5 個欄位)如下。
開始日期 | 時間 | 數字1 | 數字2 | 鍵1 | 鍵2 |
---|---|---|---|---|---|
2022年11月21日 | 0:01 | 1668969012 | 413027032418217 | B3B820CE | |
2022年11月21日 | 0:02 | B3B820CE | |||
2022年11月21日 | 0:03 | 1668969013 | 413027032418218 | 8EFCB769 | |
2022年11月21日 | 0:04 | 8EFCB769 | |||
2022年11月21日 | 0:05 | 1668969014 | 413027032418219 | 4070A788 |
正如您所看到的,前兩行和後兩行可以透過使用 key1 和 key2 中的字串進行耦合。但對於最後一個字段,沒有任何符合字段。
基本上我需要匹配這些對並建立一個新表,如下所示。
開始日期 | 時間 | 結束日期 | 時間 | 數字1 | 數字2 |
---|---|---|---|---|---|
2022年11月21日 | 0:01 | 2022年11月21日 | 0:02 | 1668969012 | 413027032418217 |
2022年11月21日 | 0:03 | 2022年11月21日 | 0:04 | 1668969013 | 413027032418218 |
2022年11月21日 | 0:05 | 1668969014 | 413027032418219 |
這是我到目前為止所嘗試的。但這並沒有提供我所需要的。有人可以告訴我這裡的錯誤是什麼嗎?
SELECT t1.start_date_time, t2.start_date_time AS end_date_time, t1.number1, t1.number2 FROM details_all AS t1 JOIN details_all AS t2 ON t1.key1 = t2.key2
錯誤很簡單 - INNER JOIN 將只選擇完整的對。
您必須在單獨的子查詢中收集所有鍵值,然後將資料加入其中。
如果
key1
值始終存在,而key2
中的相同值可能不存在,那麼您可以使用簡單的 LEFT JOIN: