fritz85: Datenbankabfrage Inner Join?

Hallo zusammen,
ich habe da ein Problem.

Ich habe 2 Tabellen:

1 Tabelle namens video_category. ID | Name
2 Tabelle namens video. ID | Titel | Category | usw. | keywords

Ich möchte nun folgende Abfrage:

  
$Query = "SELECT video.Id FROM `video` INNER JOIN `video_category` ON (video.Category=video_category.Id) WHERE video_category.Category LIKE '".$Category."' AND video.Status > 0 ORDER BY `Id` DESC;";

Der Query sucht nach dem Paramter den er per URL erhält z.B. &category=Horror

Auf der Seite bestehen die Kategorien z.B. aus Action / Abenteuer / Horror / usw.

Nun die neuen Filme können in mehreren Kategorien vorkommen habe da per XML folgendes Beispielweise erhalten:
<keywords>Action, Abenteuer, Krimi, Komödie</keywords>

Dies habe ich auch so in der Datenbank gespeichert.

Wie kann ich nun den SQL anpassen das er auch noch keywords beachtet auch wenn er nicht die Category (z.B. 19) hat ???

Danke und Gruss
Fritz

  1. Hi fritz85!

    Wie kann ich nun den SQL anpassen das er auch noch keywords beachtet auch wenn er nicht die Category (z.B. 19) hat ???

    Ich würde das Datenbankdesign anpassen und die n:m-Relation zwischen Film und Kategorie der 3. Normalform entsprechend realisieren.

    Falls du dich damit noch nicht auskennst, ein Beispiel:

    Tabelle Film
    |    ID    |   Titel   |
         --

    Tabelle Kategorie
    |    ID    |   Name    |
         --

    Verknüpfungstabelle Film_ist_in_Kategorie
    | Film.ID  |  Kat.ID   |
      -------     ------

    Wobei unterstrichen Attribute (im letzten Fall segmentierte) Primärschlüssel darstellen.

    So kannst du jedem Film beliebig viel Kategorien zuordnen und auch problemlos neue Kategorien hinzufügen.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)