SQL-Abfrage: Gib zu allen Mitarbeitern, den Namen ihres Vorgesetzen aus und den Abteilungsnamen, in denen sie arbeiten?

3 Antworten

Nicht getestet, aber so sollte es gehen:

SELECT EMP.ENAME, DEPT.DNAME, MGR.ENAME 
FROM EMP INNER JOIN DEPT
ON EMP.DEPTNO = DEPT.DEPTNO
LEFT JOIN EMP AS MGR
ON EMP.MGR = MGR.EMPNO

Also die Tabelle EMP zweimal in die Abfrage aufnehmen. Einmal halt unter einem anderen Namen, damit du die Zahl aus der Spalte MGR mit der Zahl aus EMPNO matchen kannst.

Sorry aber meine Hilfreichigkeit kann nur darin bestehen, dass diese Benamung der Tabellen DB untauglich sind (Was sind die ID's Fremdschlüssel usw.).

An der Fragestellung erkennt man, dass es eine UNI Anfänger SQL Abfrage ist die dir zu schwer ist.

Lerne erst mal Constraints, Refereces und beschäftige Dich ausgiebig mit den Schlüsselworten GROUP BY und HEAVING.

Woher ich das weiß:Berufserfahrung
lypix 
Fragesteller
 02.02.2022, 10:39

Das kannst du gut sagen als SENIOR Programmierer ich hab eh schon selber herausgefunden wie das geht, man kann sich leider nicht auf die Leute hier verlassen. Im Untericht haben wir das nichtmal noch gemacht aber OK Boomer.

0
Von einem Experten bestätigt

Du kannst einfach einen left join auf die EMP Tabelle machen. Als Schlüssel verwendest du die Departmentnumber und über eine where Bedingung definierst du, dass nur Einträge angezeigt werden, wo in der Spalte Job der gejointen EMP Tabelle "Manager" steht

Woher ich das weiß:Berufserfahrung – arbeite seit vielen Jahren in der IT