Panicz74
26.01.2016, 20:23:18
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
26.01.2016, 21:03:19
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
26.01.2016, 21:08:52
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
26.01.2016, 22:58:17
Ż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.
SELECT ...
FROM tabela1 INNER JOIN tabela2 ON ...
SELECT ...
FROM tabela1 JOIN tabela2 ON ...
Oba zapytania dadzą ten sam wynik.
JOIN Syntax