Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klauzula ON w JOIN'ach
Forum PHP.pl > Forum > Bazy danych > MySQL
Athlan
Witam.

Ostatnio zaczynam zajmować się optymalizacją zapytań w moim serwisie, są dość pogmatwane, pisane "na szybko". Jednak serwis się nieźle rozrósł, potrzeba optymalizacji.

Bardzo przydał mi się ten topic i chciałbym do niego nawiązać, lecz w innym kontekście.
Temat: Indexy jak stosowac

Mianowicie. Z tego co wiem, bardzo ważna jest kolejność pól wymienianych w klauzuli ON.

W tabeli friends są powiązania między użytkownikami: friend_user - ID usera (przyjaciela), friend_owner - ID usera, który (brzydko mówiąc) ma tego przyjaciela.

Chcemy pobrać listę nicków userów, którzy są przyjacielami dla usera o ID 1. Dwa przypdaki:
  1. SELECT user_name FROM friend LEFT JOIN users ON (user_id = friend_user) WHERE friend_owner = 1

  1. SELECT user_name FROM friend LEFT JOIN users ON (friend_user = user_id) WHERE friend_owner = 1


Czy jest jakaś różnica między tymi dwoma zapytaniami oprócz kolejności zapisu (od strony teoretyczno/wydajnościowo/technicznej)? Jeżeli tak, to która z tych form jest bardziej poprawna i dlaczego?

Dzięki za udzielenie się w dyskusji.

Pozdrawiam.
AxZx
skorzystaj z explain i zobacz dla tych dwoch zapytan co zwraca.
moze sam sobie odpowiedz na to pytanie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.