• Hey :)

    Hoffe mal, mir kann hier jemand unter die Arme greifen.
    Mein SQL ist da doch etwas seehr rudimentär :roll:

    Ich muss gerade mit einem Typo3 Newssystem arbeiten. Die Datenbanktabellen sehen folgendermaßen aus:

    Tabelle news:
    Primärschlüssel: news_uid

    Tabelle kategorie:
    Primärschlüssel: cat_uid

    Tabelle relation:
    Hier sind dann Einträge ala
    uid: news_uid
    pid: cat_uid
    , wobei die Einträge nicht einzigartig sind. Es kann also ein Newseintrag mit mehreren Kategorien verknüpft sein. In diesem Fall existieren dann mehrere Einträge mit der selben news_uid.

    Nun brauche ich Abfragen der Art, dass ich mir Newseinträge hole, welche mit mehreren bestimmten Kategorien verknüpft sind.

    Ich bin nur soweit, dass ich das im Script über mehrere Schleifen und Abfragen lösen kann. Von der Funktionalität her also ok, aber ich hätts gerne "sauberer".
    Hier hören dann meine SQL-Kenntnisse auf und ich bräuchte da einfach mal nen Schubs von euch :)

    Danke und Gruß,
    jojo


  • SELECT n.news_uid /* oder was auch immer du brauchst*/
    FROM news n
    INNER JOIN relation r
    ON (r.uid=n.news_uid)
    WHERE (r.pid IN (liste_der_nötigen_kategorien))

    Die Liste enthält ein Array mit den IDs der Kategorien, die du brauchst. Die könntest du mit einer Unterabfrage erstellen oder per PHP. So könnte es aussehen:

    SELECT n.news_uid /* oder was auch immer du brauchst*/
    FROM news n
    INNER JOIN relation r
    ON (r.uid=n.news_uid)
    WHERE (r.pid IN (SELECT cat_uid FROM kategorie WHERE cat_name LIKE 'php'))

    Ob das jetzt performancemäßig besser ist als deine Methode, kann ich nicht sagen.

    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  • Yeah, danke dir. Genau sowas hab ich gesucht :)

    Die Performance is hier nicht von so großer Bedeutung.
    Ich wollt eher mal blicken, wie ich da mit sql weiterkomme.

    Nochmals riesen Dank

    //Edit:

    Code
    WHERE (r.pid IN (liste_der_nötigen_kategorien))
    Zitat


    Die Liste enthält ein Array mit den IDs der Kategorien,

    Kann ich da etwa nen normales php-Array mit geben?
    Das wär mir auch komplett neu. Wär natürlich mega praktisch...


    Einmal editiert, zuletzt von jojo87 (24. Juni 2009 um 12:47)