Kirsten: SQL-Abfrage

Huhu Alle,

habe da mal kleines Problemchen.
Ich fummel an einem Forum herum und möchte folgendes ausgeben.

Ich habe eine DB-Tabelle wo z.b. folgendes steht:

id , thread , Name , text , zeit
_________________________________
1  , 1      , Meier, textbla,irgendeine zeit
2  , 2      , Hans , textbla,irgendeine zeit
3  , 3      , Fritz, textbla,irgendeine zeit
4  , 4      , Hans , textbla,irgendeine zeit
5  , 3      , Meier, textbla,irgendeine zeit
6  , 3      , Gerd , textbla,irgendeine zeit
7  , 2      , Opa  , textbla,irgendeine zeit
8  , 5      , Oma  , textbla,irgendeine zeit

So und nun möchte ich absteigend sortiert nach id die threads auflisten bzw filtern, natürlich nicht doppelt sondern so:

8  , 5      , Oma  , textbla,irgendeine zeit
7  , 2      , Opa  , textbla,irgendeine zeit
6  , 3      , Gerd , textbla,irgendeine zeit
4  , 4      , Hans , textbla,irgendeine zeit
1  , 1      , Meier, textbla,irgendeine zeit

und das ganze noch mit einer sql-abfrage :-)

hat jemand einen tip für mich? bitte bitte.

danke im vorraus

  1. hi,

    Ich habe eine DB-Tabelle wo z.b. folgendes steht:

    id , thread , Name , text , zeit

    ist das ganze denn in einer Tabelle oder auf mehrere verteilt?

    1. Eine einzige Tabelle ist das
      Gruß Kirsten

      1. Eine einzige Tabelle ist das
        Gruß Kirsten

        müsste doch eigentlich so klappen:

        SELECT * FROM "table" ORDER BY id;

        oder nicht?

        1. :-) nee leider nicht, da ich dann alle datensätze habe. ich möchte aber nur die unterschiedlichen threads auflisten.
          eine abfrage mit DISTINCT bringt nix und eine mit GROUP BY thread hat zwar fast ein Ergebnis allerdings dann sortiert nach thread nicht nach id, da erst nach der Abfrage innerhalb der threads nach id sortiert wird. das gibt nicht das gewünschte ergebnis.

          gruß Kirsten

        2. mysql_query("SELECT * FROM table ORDER BY thread ASC");

          gruss Armin

          1. mysql_query("SELECT * FROM table ORDER BY thread ASC");

            gruss Armin

            Armin, das ergibt nicht das gewünschte Ergebnis. :-)

            Gruss Kirsten

            1. okay ich habe gerade die andere antwort gelesen ...
              das was du suchst müstes du (keine garantie) mit

              GROUP BY spaltenname

              hinbekommen

              gruss armin

              1. Leider nicht :-(

                Select * from tab_forum GROUP BY thread ORDER BY id
                z.b.
                gibt mir zwar die korrekte liste aus allerdings nicht sortiert nach id. es wird innerhalb der threads nach id sortiert - das ist aber nicht korrekt. ich möchte sozusagen z.b. die letzten 10 verschiedenen threads anzeigen.

                gruss Kirsten

              2. Leider nicht :-(

                Select * from tab_forum GROUP BY thread ORDER BY id
                z.b.
                gibt mir zwar die korrekte liste aus allerdings nicht sortiert nach id. es wird innerhalb der threads nach id sortiert - das ist aber nicht korrekt. ich möchte sozusagen z.b. die letzten 10 verschiedenen threads anzeigen.

                gruss Kirsten

  2. yo,

    So und nun möchte ich absteigend sortiert nach id die threads auflisten bzw filtern, natürlich nicht doppelt sondern so:

    deine sortierung geht einfach über ORDERY BY id, threads. dein problem ist aber dein anspruch "nicht doppelt", bzw. was du damit meinst. dies geht unter anderem über unterabfragen, aber nicht jedes dbms und nicht jeder version untersützt das, zumal unterabfragen auch nicht sehr performant sind. sprich mein vorschlag, mach daraus mehrere abfragen.

    Ilja