Moin.

Ich hab ein kleines (grosses...) Problem mit einer SQL-Syntax.

Ein kleines Beispiel anhand einer fiktiven Rezeptdatenbank soll mein Problem hier verdeutlichen:

In einer Datenbank gibt es 3 Tabellen.

In Tabelle 1 sind verschiedene Rezepte eingetragen; jeweils mit Namen und ID. Beispieldaten:

1 = Hamburger
2 = Vanilleeis
3 = Bentley
4 = Schokopudding
5 = Käsespätzle

In der 2. Tabelle findet man die Zuordnung, welche Typ-ID was heisst:
1 = Hauptgericht
2 = Nachspeise
3 = Cocktail
4 = Vorspeise

In einer 3. Tabelle befindet sich nun die Zuordnung, welches Rezept nun welcher Typ ist.
1 = 1 (Hamburger = Hauptgericht)
2 = 2 (Vanilleeis = Nachspeise)
3 = 3 (Bentley = Cocktail)
4 = 2 (Schokopudding = Nachspeise)
5 = 1 (Käsespätzle = Hauptgericht)
5 = 4 (Käsespätzle = kann auch Vorspeise sein)

Es kann also ein Rezept durchaus zu mehreren Typen gehören.

Die Frage ist nun: Wie muss hierfür die SQL-Abfrage aussehen, wenn ich z.B. aus Tabelle 1 nur die Rezepte anzeigen will, die in Tabelle 3 als "Hauptgericht" markiert sind?

Geht das überhaupt ohne grösseren Aufwand bzw. mit 1 Abfrage? Jeden Datensatz einzeln raussuchen würd schon gehen, dauert aber relativ lange.
(Also aus Tabelle 3 alle Rezept-IDs raussuchen, deren Typ-ID zutrifft; danach mit diesem Array der Rezept-IDs alle Rezepte aus Tabelle 1 einzeln rauslesen)

mfG