![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 303 Pomógł: 1 Dołączył: 24.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
mam zapytanie jak powyzej, zwraca ono mi logi z tabeli ".$prefix."logi.* tak jak chce dla zalogowanych uzytkownikow, ale w tabeli logi_users_id =0 mam logi dla nie zalogowanych i jak by to wcisnac w to jedno zapytanie zeby nie rozdzielac tego na kilka? Mozna by dac where z tym wlasnie warunkiem lecz poprzednia czesc przestanie dzialac.. i robi sie zonk nie ma sposobu by nie rozbijac tego na dwa zapytania? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Użyj LEFT JOIN:
Ten post edytował SmokAnalog 1.03.2015, 17:42:01 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 303 Pomógł: 1 Dołączył: 24.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
No niby dziala i bardzo dziekuje, a moge wiedziec jaka jest roznica miedzy LEFT JOIN a samym JOIN?
Dopiero ucze sie zapytan pomiedzy tabelami opartych o JOIN, wiec bede wdzieczny o wytlumaczenie. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
JOIN działa tak, że łączy tabele na podstawie warunku z ON i tworzy wszystkie możliwe pary spełniające warunki. LEFT JOIN działa bardzo podobnie, ale z tą różnicą, że z tabeli po lewej (stąd LEFT JOIN) w zestawie wyników na pewno będzie przynajmniej jeden rekord.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 303 Pomógł: 1 Dołączył: 24.09.2011 Ostrzeżenie: (10%) ![]() ![]() |
no dobra skoro jest takie bardzo duze podobienstwo to czemu na tym przykladzie LEFT JOIN "wziol" tez 0 a samo JOIN tego nie zrobil? samo JOIN laczy tylko to co po ON czyli tak jakby warunek w WHERE a LEFT JOIN cale tabele? i to jest ta roznica?
czyli chyba lepiej uzywac LEFT JOIN.. bo tez lapie ON a dodatkowo bierze wszystkie dane , o ile dobrze zrozumialem ( chyba jest on czesciej uzywany , albo i najczesciej z tego co czytam) a uzycie RIGHT /LEFT JOIN to juz zamiennosc czy tez ma znaczenie? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Częściej się używa JOIN niż LEFT JOIN. LEFT JOIN wziął sobie 0 stąd, że tak jak mówiłem - z tabeli po lewej będziesz miał wszystkie rekordy. Zauważ, że zmieniłem kolejność tabel w Twoim zapytaniu, żeby właśnie elegancko się posłużyć LEFT JOIN. RIGHT JOIN działa tak samo jak LEFT, tylko że na pewno będą wszystkie rekordy z tabeli po prawej. Staram się w miarę możliwości unikać RIGHT JOIN, bo jest nieobecny w standardzie SQL, więc przy ewentualnej zmianie systemu bazy danych będzie mniej roboty.
Innymi słowy, te zapytania są takie same:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:52 |