Problem mit einer SQL-Abfrage

Hallo,

ich habe eine Aufgabenstellung, an der ich mir die Zähne ausbeiße.
Es wäre riesig nett, wenn mir jemand einen Tip geben könnte.

Also:
Ich besitze 3 Tabellen
Tabelle 1: Pilot (Feld: pname)
Tabelle 2: Flugzeug (Feld: fname)
Tabelle 3: Fähigkeiten (Felder: pilot,flugzeug)

In der Tabelle Fähigkeiten ist eine Zuordnung von Pilot und Flugzeug.
Ein Pilot steht in dieser Tabelle, wenn er ein bestimmtes Flugzeug fliegen kann,
genauer gesagt, wenn ich 3 Flugzeuge fliegen kann, stehe ich 3mal in der Fähigkeits-Tabelle (pro Flugzeug 1mal)

Nun heißt die Aufgabenstellung:
„Nenne mir die Piloten, die alle Flugzeuge fliegen können“.

Ich bin irgendwie in einer Sackgasse gelandet.

Mit den Befehlen :
„select pilot, count(pilot) from fähigkeiten group by pilot“
und „select count(fname) from flugzeug“
könnte ich die Anzahl der Pilot-Einträge mit der Anzahl der Flugzeuge vergleichen,
aber ich bekomme die nicht in eine einzige Abfrage rein.

Ist dieser Lösungsansatz überhaupt zu gebrauchen ?

Für Eure Hilfe wäre ich Euch dankbar

Gruß
Regine

Hallo,

Ich bin irgendwie in einer Sackgasse
gelandet.

Aber nicht doch!

Mit den Befehlen :
„select pilot, count(pilot) from
fähigkeiten group by pilot“
und „select count(fname) from
flugzeug“
könnte ich die Anzahl der Pilot-Einträge
mit der Anzahl der Flugzeuge
vergleichen,
aber ich bekomme die nicht in eine
einzige Abfrage rein.

OK, ganz heiß…

Ist dieser Lösungsansatz überhaupt zu
gebrauchen ?

Ja, Du bist ganz nahe dran:

select pilot from fähigkeiten
group by pilot
having count(*) = (select count(*) from flugzeug);

Gruß

J.