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