Ankündigung

Einklappen
Keine Ankündigung bisher.

Abfrage über 2 Tabellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ragtek
    hat ein Thema erstellt Abfrage über 2 Tabellen.

    Abfrage über 2 Tabellen

    Irgendwie ist meine Logik heute auf Urlaub.

    Ich habe 2 Tabellen

    Kategorie & Einträge
    Code:
    cat
    catid
    name
    
    
    eintrag
    eintragid
    name
    catid
    Jetzt habe ich es so, dass ich alle Kategorien abfrage und dann für jede Kategorie eine Abfrage für die Einträge mache und diese ausgebe.

    Bei 20 Kategorien wären das 21 Abfragen.
    Geht das irgendwie einfacher?

    Hab mir nun gedacht, dass ich es so mache, aber wie geb ich dann die Kategorien und die einzelnen Einträge aus?
    PHP-Code:
    SELECT
        eintrag
    .*, cat.*
        
    FROM " . TABLE_PREFIX . "eintrag as eintrag
        left join 
    " . TABLE_PREFIX . "eintragcategorie as cat
        on
    cat.eintragcategorieid =  eintrag.eintragid )

  • Gast-Avatar
    Ein Gast antwortete
    Ja, das war nur Pseudocode.

    Und der Fehler war, dass ich in der 2. Schleife die Prüfung vergessen habe, dadurch habe ich in jeder Kategorie jeden Eintrag ausgelesen...

    Manchmal sieht man vor lauter Bäumen echt den Walt nicht mehr

    Einen Kommentar schreiben:


  • Jens Clasen
    antwortet
    Ja, kann man. Dann halt nur mit einer While-Schleife und ohne weitere Query in der While-Schleife.

    Dein Join ist doch eigentlich schon fast in Ordnung. Du solltest von Kategorie zu Eintrag joinen, und SELECT * is evil, aber ansonsten geht das schon in die richtige Richtung.

    Gruß Jens

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Naja, wie geb ich das jetzt am schönsten aus?

    Bis jetzt habe ich es so:
    PHP-Code:
    //pseudocode
    $cats select catnamecatid from categorie
    while ($cat fetch($cats))

     echo 
    'categorie: ' $cat['name']

     
    $einträge select from eintrag where catid $cat[catid
     
    while (
    $eintrag fetch($einträge))
     {
         echo 
    einzelner eintrag...
     }
     echo 
    'kategorie zu ende';
    }
    echo 
    'ende'
    Damit habe ich bei 20 Kategorien 21 Queries.
    Nun frag ich mich gerade, ob man das nicht über einen Query und Join lösen kann?

    Einen Kommentar schreiben:


  • Jens Clasen
    antwortet
    Bitte noch mal ganz langsam: Wo ist jetzt genau Dein Problem bei der Join-Geschichte?

    Gruß Jens

    Einen Kommentar schreiben:

Lädt...
X