2
Ich habe 2 Tabellen in Zugriff und ich muss eine Verknüpfung basierend auf einer gemeinsamen Spalte (dest) und nächste Zeit in Tabelle B, die gleich oder früher als Tabelle A ist .Zugreifen auf zwei Tabellen auf die engste Zeit
Flüge (Tabelle A)ID | dest | land
1 | SUN | 1/1/2017 8:52:00 AM
2 | SEA | 1/1/2017 4:39:00 AM
Wetter (Tabelle B)
ID | dest | time | vis
1 | SUN | 1/1/2017 8:15:00 AM | 10
2 | SUN | 1/1/2017 8:35:00 AM | 5
3 | SUN | 1/1/2017 8:55:00 AM | 2
4 | SEA | 1/1/2017 2:48:00 AM | 7
5 | SEA | 1/1/2017 3:52:00 AM | 10
6 | SEA | 1/1/2017 4:49:00 AM | 2
Gewünschte Ergebnisse (Tabelle C)
ID | dest | land | time | vis
1 | SUN | 1/1/2017 8:52:00 AM | 1/1/2017 8:35:00 AM | 5
2 | SEA | 1/1/2017 4:39:00 AM | 1/1/2017 3:52:00 AM | 10
Ich habe festgestellt, wie man auf der 'dest' UND die nächste Zeit beitreten. Tabelle A enthält ~ 25.000 Zeilen und Tabelle B ~ 100.000.
Danke:
Alternativ kann das gleiche Ergebnis mit dieser Abfrage erreicht werden. Ich habe die erste Option ausprobiert und konnte die Abfrage nicht abschließen, wenn der Teil 'time <= flights.land' enthalten war. Die Abfrage würde ausgeführt, aber nie abgeschlossen, auch nicht mit einer kleinen Datenmenge. Mit der zweiten Lösung mit dem INNER JOIN würde es in ~ 4 Minuten mit einer kleinen Menge von Daten vervollständigen, aber nach 21 Minuten war mein kompletter Datensatz immer noch nicht vollständig. Irgendwelche Vorschläge, um es zu beschleunigen, oder vielleicht einen zweistufigen Prozess? Ich habe die in der Abfrage verwendeten Felder indiziert. –
Sie benötigen einen Index für die 'dest'-Spalte in beiden Tabellen und für die 'Land'-Spalte in der Flugtabelle und für die' Zeit'-Spalte in der Wettertabelle. Ich nehme an, dass die 'ID' der Primärschlüssel ist - daher ist kein Index dafür erforderlich – cha