hallo forum,
ich hab hier eine Datenbankabfrage, die ich einfach nicht hinbekomme, und ehrlich gesagt weis ich auch nicht, ob man das in einem query überhaupt lösen kann.
Vereinfacht gesagt, habe ich 2 Tabellen: inserate und sonder
Die Tabelle inserate beinhaltet die Daten von Gebrauchtwagen und die Tabelle sonder enthält die Zuordnung Inserat->Sonderausstattung
Tabelle: inserate
id | auto
---------
1 | Audi
2 | BMW
3 | Ford
4 | Opel
Tabelle: sonder
id | iid | sid
--------------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 1 | 15
5 | 2 | 3
6 | 2 | 4
7 | 3 | 2
8 | 4 | 1
9 | 4 | 2
10 | 4 | 3
11 | 4 | 15
12 | 4 | 16
Ich will jetzt nach Autos suchen das die Sonderausstattungen 1,2,3,15 hat.
Folgenden Query hab ich bis jetzt:
SELECT inserate.id FROM inserate WHERE inserate.id NOT IN ( SELECT iid FROM sonder WHERE sid NOT IN (1,2,3,15) )
Dieser Query gibt mir zwar den Audi, aber nicht den Opel aus, da der Opel auch noch die Ausstattung Nr. 16 hat.
Wie muss der Query aussehen, damit ich alle Autos bekommen die wenigstens die verlangten Ausstattungen haben, oder auch noch andere?