Ergebnis 1 bis 4 von 4

Thema: Join oder was?

  1. #1
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Join oder was?

    Hey

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

    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
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in) Avatar von Afrael
    Registriert seit
    26.04.2009
    Ort
    NRW
    Alter
    26
    Beiträge
    313
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Join oder was?

    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.

  3. #3
    der/die Göttliche
    Themenstarter
    Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Join oder was?

    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))
    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...
    Geändert von jojo87 (24.06.2009 um 13:47 Uhr)

  4. #4
    Pion
    Gast

    Standard AW: Join oder was?


Ähnliche Themen

  1. JOIN auf selbe Tabelle
    Von Mir nicht im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 12.09.2008, 17:53
  2. Join Us - Formular
    Von gast im Forum HTML & CSS Forum
    Antworten: 8
    Letzter Beitrag: 11.08.2007, 00:51
  3. Join Problem
    Von marquies im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 17
    Letzter Beitrag: 21.07.2007, 12:59
  4. LEFT JOIN
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 27.05.2007, 15:15
  5. sql - join
    Von phore im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 29.06.2005, 12:44

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •