Helmuth: Schnittmenge mehrerer Abfragen (oder alles in einer Abfrage?)

Beitrag lesen

Hallo,

ich hab eine (fertige, fremde) Datenbank übernommen - kann am Design also nichts grundlegendes mehr ändern. Es geht darum mehrere Einträge nach mehreren Kriterien abzufragen, zu sortieren und die Qualität des Treffers zu ermitteln.

Die DB schaut folgendermaßen aus:

mood    | cd_id | ranking

traurig | 1     | 1
traurig | 12    | 2
traurig | 3     | 3
jazz    | 4     | 1
langsam | 1     | 3
langsam | 4     | 2
langsam | 12    | 3

Bei der Abfrage kann man die einzelnen Kriterien auch werten, also zb.

Traurig 3, Langsam 1

Wie müsste nun die entsprechende Abfrage ausschauen damit ich alle Treffer bekomm in der Reihenfolge: Alle Kriterien erfüllt (nach ranking sortiert) und dann halt absteigend, 3,2,1 Kriterium erfüllt je nach Anzahl der Kriterien.

Im Beispiel:
cd_id 12 (traurig und langsam)
cd_id 1 (auch traurig und langsam, schlechteres ranking)
cd_id 3 (nur traurig, aber dafür sehr)
cd_id 4 (langsam)

Bin nicht so der Datenbank-Held, vielleicht kann mir hier jemand auf die Sprünge helfen...

Danke,

Helmuth