Select letzte Beiträge, max 3 pro user??

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

  • Select letzte Beiträge, max 3 pro user??

    Hallo...

    Mit einem bisher ganz simplen
    PHP-Code:
    SELECT BenutzerTitelBeitrag from Themen order by Titel_Id DESC limit 10 
    hole ich mir aus der tabelle Titel die letzten 10 geschrieben Beiträge der "Benutzer".

    Jeder "Benutzer" kann beliebig viele Beiträge schreiben.

    Ich möchte jetzt in meiner Abfrage, dass die letzten Beiträge ausgegeben werden, aber nur maximal 3 pro "Benutzer" und eben doch insgesamt 10.

    Nur leider hab ich grad keinen blassen Schimmer, wie ich das anstellen soll...
    Hat jemand ne Idee dazu?

  • #2
    Ich würde es mit subquery versuchen, bin aber überhaupt nicht sicher.

    PHP-Code:
    mysql:
    select benützerbeitrag from Themen as T1
      where T1
    .beitrag ANY (select beitrag from Themen as T2 where
                                T2
    .benützer=T1.benutzer order by datum desc 
                                 limit 3
    )
    order by datum desc
    limit 10

    Etwas ähnliches ist hier,allerdings kommt in der subquery nicht die gleiche table vor:
    13.2.8.7. Correlated Subqueries
    A correlated subquery is a subquery that contains a reference to a table that also appears in the outer query. For example:

    SELECT * FROM t1 WHERE column1 = ANY
    (SELECT column1 FROM t2 WHERE t2.column2 = t1.column2);

    Zuletzt geändert von vierteln; 28.04.2006, 00:35.

    Kommentar


    • #3
      Und wenn ein subSelect nicht funktioniert??
      Hat da vielleicht jemand ne Idee zu, die er mir mitteilen möchte?

      Kommentar


      • #4
        beim Erstellen der Meldung die drei neuesten in die Usertabelle speichern. Gibt zwei Queries beim Abfragen (zehn neueste User und deren drei neueste Mdg), und ein Update beim Erstellen.

        Oder die Meldungen auch pro User zu numerieren, die höchste Nummer speichern und im Query der 10 neuesten Benützer nur die drei letzten Mdg im WHERE holen.

        ich glaube der Schlüssel besteht darin, die Meldungen auch pro User fortlaufend zu numerieren, dann geht es.

        Sonst die zehn neuesten Benutzer holen, und davon jeweils drei Meldungen, und im php zuEnde aussortieren.
        Zuletzt geändert von muh (newbie); 12.05.2006, 14:06.

        Kommentar

        Lädt...
        X