Problem mit einer Query

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

  • Problem mit einer Query

    Hallo,

    ich habe unter Mysql (in Verbindung mit PHP) folgende Query:


    PHP-Code:
    SELECT 
    a
    .id AS kommentarid
    a.bildid
    a.userid AS kommentarschreiberid
    UNIX_TIMESTAMPa.datumzeit ) AS kommentarzeit
    a.kommentar
    b.bild AS bildname
    b.titel AS bildtitel
    b.userid AS bildinhaberid
    c.art AS kommentarschreiberart
    d.nickname AS kommentarschreibernickname
    e.art AS bildinhaberart
    f.nickname AS bildinhabernickname
    FROM sc_bilder_kommentare 
    AS a
    LEFT JOIN sc_bilder 
    AS b ON a.bildid b.id
    LEFT JOIN sc_benutzer 
    AS c ON a.userid c.id
    LEFT JOIN sc_benutzer_details 
    AS d ON a.userid d.userid
    LEFT JOIN sc_benutzer 
    AS e ON b.userid e.id
    LEFT JOIN sc_benutzer_details 
    AS f ON b.userid f.userid
    ORDER BY a
    .datumzeit DESC
    LIMIT 0
    25 
    Die funktioniert auf soweit, nur mit einem kleinen Schönheitsfehler.
    Wenn ein Bild mehrfach kommentiert wurde, soll das Bild nur einmal auftauchen mit dem aktuellsten Kommentar. Wenn ich ein GROUP BY a.bildid einfüge, dann fehlen schon mal die neuesten Kommentare.

    Die Tabellen:
    sc_benutzer: id + Logindaten
    sc_benutzer_details: Details zu dem Benutzer, Verbindung zur ersten Tab über id -> userid
    sc_bilder: Bilder, Verbindung über userid
    sc_bilder_kommentare: Verbindung über userid zur sc_benutzer und über bildid zur sc_bilder

    Wer kann mir dabei helfen?

  • #2
    Hallo!

    Ich glaube das gänge wenn du auf die kommentar id ein limt 1 setzt,dann zeigt es dir das letzt hinzugefügte kommentar an!

    mfg der Litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #3
      Ich brauche aber nicht nur einen Eintrag, ich brauche 25, aber eben pro Bild nur den aktuellsten Kommentar.

      Kommentar


      • #4
        Damit scheint es zu gehen:
        PHP-Code:
        SELECT a.id AS kommentarid
        a.bildid
        a.userid AS kommentarschreiberid
        UNIX_TIMESTAMPa.datumzeit ) AS kommentarzeit
        a.kommentar
        b.bild AS bildname
        b.titel AS bildtitel
        b.userid AS bildinhaberid
        c.art AS kommentarschreiberart
        d.nickname AS kommentarschreibernickname
        e.art AS bildinhaberart
        f.nickname AS bildinhabernickname
        FROM sc_bilder_kommentare 
        AS a
        LEFT JOIN sc_bilder 
        AS b ON a.bildid b.id
        LEFT JOIN sc_benutzer 
        AS c ON a.userid c.id
        LEFT JOIN sc_benutzer_details 
        AS d ON a.userid d.userid
        LEFT JOIN sc_benutzer 
        AS e ON b.userid e.id
        LEFT JOIN sc_benutzer_details 
        AS f ON b.userid f.userid

        WHERE a
        .id = ( SELECT MAX(idFROM sc_bilder_kommentare WHERE bildid a.bildid )

        ORDER BY a.datumzeit DESC
        LIMIT 0
        25 

        Kommentar

        Lädt...
        X