T1: Mitarbeiter [id, Gehalt]Innerer Anschluss: Ist das eine optimale Lösung?
T2: Abteilung [Name, Employeeid] (Employeeid ist ein Fremdschlüssel zu T1 id)
Problem: Schreiben Sie eine Abfrage den Namen der Abteilung zu holen, die erhält das maximale Gehalt.
Meine Lösung:
SELECT DISTINCT name
FROM department AS a
INNER JOIN employee AS b ON a.employeeid = b.id
AND b.salary
IN (
SELECT max(salary)
FROM employee AS c
)
Edit: Die Problemstellung ist richtig, und wir versuchen nicht, die Mitarbeiter, um herauszufinden, wer das höchste Gehalt hat. Es sagt ".... Abteilung, die empfängt .....", nicht "... Angestellte, die empfängt ....".
Ist das ok? Oder kann das optimiert werden?
Welche Datenbank und Version verwenden Sie? –
Soll man eine Abteilung finden, in der der Angestellte mit maximalem Gehalt arbeitet oder die Abteilung, deren Mitglieder die maximale Summe der Gehälter haben? Denn dein Code sagt eins und dein Text den anderen. –
Und, ist das eine Hausaufgabe? –