Mam problem z zapytaniem do bazy MySql.
Mam 2 tabele:
1. Kierownicy - przechowuje dane o kierowniku: id(autoincrement), imię, nazwisko, pomocnik1, pomocnik2, pomocnik3, pomocnik4, pomocnik5
2. Pomocnicy - przechowuje dane o pomocnikach: id(autoincrement), imię, nazwisko, adres, itd.
Pomocnik1,...,pomocnik5 zawierają odpowiednie id(pomocników) z tabeli Pomocnicy.
I teraz moje pytanie w jaki sposób pobrać z bazy informacje o kierownikach i przydzielonych im pomocnikach?
Napisałem takie zapytanie:
SELECT k.imie, k.nazwisko, k.login, p1.imie, p1.nazwisko, p2.imie, p2.nazwisko, p3.imie, p3.nazwisko, p4.imie, p4.nazwisko, p5.imie, p5.nazwisko FROM kierownicy k, pomocnicy p1, uczniowie p2, uczniowie p3, uczniowie p4, uczniowie p5 WHERE k.id_ucznia=p1.id AND k.id_ucznia2=p2.id AND k.id_ucznia3=p3.id AND k.id_ucznia4=p4.id AND k.id_ucznia5=p5.id;
Zwraca mi baza to co jest mi potrzebne jednak z małym ale wyświetla tylko tego kierownika który posiada 5 pomocników.
Żeby działało poprawnie dodałem do bazy do tabeli pomocnicy pomocnika o id 0. Aktualnie wyświetla to co powinien. Jednak zastanawiam się czy jest możliwość aby można było wyświetlać to co jest mi potrzebne ale bez konieczności dopisania do tabeli pomocnicy id 0?
Jeśli ktoś ma pomysł jak to zrobić to będę bardzo wdzięczny za pomoc. Bardzo możliwe że istnieje jakieś "lepsze" zapytanie do bazy aby uzyskać interesujący mnie wynik. Jeśli tak to prosił bym o nakierowanie czego mam szukać, bo jak na razie to nie mam żadnego pomysłu.
Korzystając z okazji mam pytanie odnośnie różnicy między tymi zapytaniami:
SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM opiekunowie k, uczniowie p WHERE k.id_ucznia=p.id;
SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM opiekunowie k JOIN uczniowie p ON o.id_ucznia=u.id;
Jedno i 2 zapytanie zwracają te same dane. Czy jest jakaś zasada kiedy jakiego używać?
PS: Sorrki za nazwę tematu ale nie mam pojęcia jak nazwać mój problem.