Zamestanci(id, oddeleni_id, jmeno, prijmeni, mzda) Oddeleni(id, nazev) -- složený predikát SELECT jmeno, prijmeni, mzda, nazev FROM Zamestnanci z JOIN (SELECT oddeleni_id, max(mzda) AS max_mzda FROM Zemestnanci GROUP BY oddeleni_id) s ON z.oddeleni_id = s.oddeleni_id AND z.mzda = s.max_mzda JOIN Oddeleni o ON o.id = z.oddeleni_id;podle me ta druha podminka v tom prvnim joinu ('...AND z.mzda = s.max_mzda ...') uz nemusi byt, ale mozna se mylim, priklad jsme nezkousel jinak kazdemu, kdo chce poradne proniknout do taju SQL bych rozhodne doporucoval knihu Introduction to SQL. Sice je dost rozsahla, ale fakt stoji za to, fucked fakt
SELECT jmeno, prijmeni from Zamestnanci WHERE (oddeleni_id, mzda) in (SELECT oddeleni_id, max(mzda) AS max_mzda FROM Zamestnanci GROUP BY oddeleni_id)Bez te druhe podminky slouzi sice 'oddeleni_id' k propojeni obou tabulek ('z' a 's'; coz jsem si myslel, ze staci, kdyz v 's' se vybira max(mzda)), coz ovsem nebrani mysql v tom, vypsat vsechny zamestnance ('s' obsahuje vsechna 'oddeleni_id'; podminka rovnosti plati pro vsechny zamestnance), takze je opravdu nutna ta druha podminka. Fucked ze jo