
MIASTO 1
-Pracownk 1
-Pracownik 2
-Pracownik 3
-Pracownik ... n
MIASTO 2
-Pracownk 1
-Pracownik 2
-Pracownik 3
MIASTO ... n
Czyli raz wyświetlało dane miasto, a pod nim wszyscy pracownicy przypisani do tego miasta
Próbowałem z różnymi zapytaniami, od najprostszych, po zagnieżdżone z DISTINCT z grupowaniem i orderowaniem wielokrotnym i na wszystkie sposoby i finalnie i tak nie potrafię zadać właściwego.
SELECT DISTINCT * FROM pracownik AS p LEFT JOIN miasta AS m ON p.miasto = m.id_miasta LEFT JOIN regiony AS r ON p.region = r.id_regionu WHERE r.id_regionu=1 // na początku ograniczyłem widok do jednego regionu, plus celowo nie wpisałem GROUP BY i ORDER BY, bo już wszystkiego próbowałem, nawet podwójnego ORDER BY miasto, pracownik ;)
Później próbowałem bardziej zagnieżdżać Region->Miasto->pracownicy, bo myślałem, że jak będę bardziej kombinował, to przez przypadek wpadnę na coś, zmieniając przy okazji formę zapytania
SELECT id_regionu, nazwa_regionu, pracownicy.* FROM regiony AS r JOIN ( SELECT p.id, p.nazwisko FROM pracownicy AS p LEFT JOIN miasta AS m ON m.id_miasta = p.id ) AS pracownicy ON pracownicy.region = r.id_regionu ORDER BY region, id_miasta
PS tak jak mówię, chciałbym zrobić jeden SELECT, bez zagnieżdżania dwóch zapytań, czyli pętli miast, a w niej pętla pracownicy z drugim SELECTEM. Założę się, że problem blachy, więc podpowiedzcie proszę czego mam szukać w google? Zapewne podstawy pętli PHP, albo postawy grupowania MySQL... wrrr
