Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: INNER, LEFT, RIGHT JOIN - prośba o wyjasnienie
Forum PHP.pl > Forum > Bazy danych > MySQL
Panicz74
Witam,

Czy moglibyście mi bardziej przybliżyć jak działają metody podane w temacie. Szukam w google i nie mogę trafić na coś co by mi rozjaśniło sprawę.

Pytam, ponieważ dostałem dzisiaj trafną uwagę do swojej aplikacji, że jak użyję zwykłego zapytania SELECT ... FROM ... WHERE, to przy większej ilości danych w bazie serwer się po prostu wysypie.

Jak to działa?
Jaka jest poprawna składnia?
Co lepsze? INNER, LEFT, RIGHT JOIN czy po prostu JOIN?

Ktoś może wie coś więcej w tym temacie?
Panicz74
No i właśnie nie rozumiem dlaczego wszyscy twierdzą, że LEFT JOIN jest lepszy od INNER JOIN. Przecież INNER JOIN zawęża poszukiwania i serwer ma znacznie mniej roboty.
markuz
Chcesz pobrać listę użytkowników oraz ilość ich komentarzy, w przypadku:
LEFT JOIN - będą wszyscy użytkownicy nawet jeżeli któryś z nich nie ma żadnego komentarza
INNER JOIN - będą tylko Ci użytkownicy którzy mają chociaż 1 komentarz

To zależy od danego problemu, a "wszyscy" zazwyczaj nie mają racji.
kartin
Żaden nie jest lepszy. mają inne zastosowania. To tak jakbyś się zastanawiał czy lepsze jest porównanie przy użyciu > czy =

W MySQL, JOIN, CROSS JOIN, INNER JOIN są równoważne.
  1. SELECT ...
  2. FROM tabela1 INNER JOIN tabela2 ON ...
  1. SELECT ...
  2. FROM tabela1 JOIN tabela2 ON ...
Oba zapytania dadzą ten sam wynik.

JOIN Syntax
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.