Ich habe einen Datensatz (Beispiel 5 Felder) wie folgt.
Startdatum | Zeit | Nummer 1 | Nummer 2 | Schlüssel 1 | Schlüssel 2 |
---|---|---|---|---|---|
21. November 2022 | 0:01 | 1668969012 | 413027032418217 | B3B820CE | |
21. November 2022 | 0:02 | B3B820CE | |||
21. November 2022 | 0:03 | 1668969013 | 413027032418218 | 8EFCB769 | |
21. November 2022 | 0:04 | 8EFCB769 | |||
21. November 2022 | 0:05 | 1668969014 | 413027032418219 | 4070A788 |
Wie Sie sehen können, können die ersten beiden Zeilen und die letzten beiden Zeilen mithilfe der Zeichenfolgen in Schlüssel1 und Schlüssel2 gekoppelt werden. Für das letzte Feld gibt es jedoch kein passendes Feld.
Grundsätzlich muss ich diese Paare zuordnen und eine neue Tabelle erstellen, wie unten gezeigt.
Startdatum | Zeit | Enddatum | Zeit | Nummer 1 | Nummer 2 |
---|---|---|---|---|---|
21. November 2022 | 0:01 | 21. November 2022 | 0:02 | 1668969012 | 413027032418217 |
21. November 2022 | 0:03 | 21. November 2022 | 0:04 | 1668969013 | 413027032418218 |
21. November 2022 | 0:05 | 1668969014 | 413027032418219 |
Das habe ich bisher versucht. Aber das bietet nicht das, was ich brauche. Kann mir jemand sagen, was hier der Fehler ist?
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: