Łączenie Left wydaje się być szybsze, ponieważ SQL jest zmuszony najpierw wykonać mniejszy wybór, a następnie połączyć się z tym mniejszym zestawem rekordów. Z jakiegoś powodu optymalizator nie chce robić tego naturalnie.
3 sposoby na wymuszenie łączenia w odpowiedniej kolejności:
- Wybierz pierwszy podzbiór danych do tabeli tymczasowej (lub zmiennej tabeli), a następnie dołącz do niego
- Użyj złączeń lewych (i pamiętaj, że może to zwrócić inne dane, ponieważ jest to złączenie lewe, a nie wewnętrzne)
- użyj słowa kluczowego FORCE ORDER. Pamiętaj, że jeśli zmienią się rozmiary tabel lub schematy, plan zapytania może nie być poprawny (patrz https://dba.stackexchange.com/questions/45388/forcing-join-order )