![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
W tabeli "stoliki" jest więcej stolików. Jak zastosować opcję LEFT JOIN tak żeby wypisał mi wszystkie stoliki z tabeli a nie tylko te które mają powiązania?
Dzieki wielkie [sql:1:05e787ba09] select distinct (stolik.id_stolika), sektor.id_sektora, kondygnacja.id_kond, rezerwacja.data_rez, rezerwacja.od_rez from stolik join sektor join kondygnacja join rezerwacja on stolik.id_sektora=sektor.id_sektora and sektor.id_kond=kondygnacja.id_kond and stolik.id_stolika=rezerwacja.id_stolika where kondygnacja.id_kond='1' and (stolik.id_sektora=sektor.id_sektora) [/sql:1:05e787ba09] |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 2.01.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że są takie dwie tabele: "samochody", "extra_wyposazenie" i chcesz jednocześnie wybrać wszystkie samochody, które mają extra wyposażenie i te, które go nie mają.
Jeśli zrobisz tak: Kod SELECT * from samochody as a, extra_wyposazenie as b WHERE a.samochod_id = b.samochod_id;
dostaniesz tylko te, które mają extra wyposażenie, ścislej mówiąc, tylko te, dla których istnieje rekord w tabeli "extra_wyposazenie". Żeby osiągnąć efekt musisz użyć czegoś takiego: Kod SELECT * from samochody as a LEFT JOIN extra_wyposazenie as b ON ( a.samochod_id = b.samochod_id );
Teraz będziesz miał wszsytkie samochody, a w wierszach z samochodami, dla których nie istniał rekord w "extra_wyposazenie" będziesz miał wartości NULL dla pól z tej tabeli. Wolę wytłumaczyć i zmusić do praktykowania niż podać na tacy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mam nadzieje, że to się da zrozumieć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zaznaczam, że przy uzywaniu LEFT JOIN'a ma znaczenie, która tabelę postawimy z lewej strony, a która z prawej. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 0 Dołączył: 10.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ja wiem jaka jest składnia, problem w tym, że nie daje się ona zastosować w tej esuelce
[sql:1:7992337db3] select distinct (stolik.id_stolika), sektor.id_sektora, kondygnacja.id_kond, rezerwacja.data_rez, rezerwacja.od_rez FROM stolik left JOIN rezerwacja ON stolik.id_stolika = rezerwacja.id_stolika INNER JOIN sektor ON sektor.id_sektora = stolik.id_sektora INNER JOIN kondygnacja ON kondygnacja.id_kond = sektor.id_kond where kondygnacja.id_kond='1' [/sql:1:7992337db3] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 12:56 |