MySQL m-c Beziehung / Kategorien

Nob

Mitglied
Hallo zusammen

Ich habe eine Tabelle in der ich Informationen zu Dateien speichere.
In einer weiteren Tabelle werden Kategorien abgelegt.

Diese beiden Tabellen verknüpfe ich miteinander in einer dritten Tabelle.
Eine Datei kann mehrere Kategorien haben.

File-Tabelle
ID | Name | Datum | Bewertung | ....
1 | test.txt | .... | 2
2 | test.jpg | .... | 2

Kategorie-Tabelle
ID | Name
3 | Lustig
4 | Trailer

Verknüpfungs-Tabelle
fk_file | fk_cat
1 | 3
1 | 4
2 | 3

Wie kann ich jetzt alle Datensätze auslesen, welche eine Bewertung von z.B. >= 2 haben und mit der Kategorie 3 und 4 verknüpft sind?

Vielen Dank im Voraus
 
Hi,

müsste über 2 JOINS gruppiert nach files.id gehen. Die HAVING-Klausel soll gewährleisten, dass die Dateien jeweils zu beiden Kategorien gehören:

SQL:
SELECT files.Name, files.Bewertung FROM files
   INNER JOIN files_cat
      ON(files.id = fk_file AND files.Bewertung >= 2)
   INNER JOIN categories
      ON(categories.id = fk_cat AND fk_cat in (3,4))
   GROUP BY files.id
      HAVING SUM(fk_cat IN (3,4)) = 2

LG
 
Zurück