Daniel_T: MySQL - Abfrage Problem

Hallo ihr!

Ich hab eine Tabelle thread, wo ich für jeden Thread ne ID, Titel,... speicher, und eine Tabelle entry wo jeder Entry ne ID, eine thread_id, ein Erstellungsdatum... usw hab.

Das funktioniert auch alles. Nur hab ich jetzt das Problem, dass ich eine Abfrage brauch, die mir die Threads so ordnet, dass die neuen Einträge zuerst sind!

Ich hoff ihr wisst was ich mein!

Danke!
Daniel

  1. Hi!

    Ich hab eine Tabelle thread, wo ich für jeden Thread ne ID, Titel,... speicher, und eine Tabelle entry wo jeder Entry ne ID, eine thread_id, ein Erstellungsdatum... usw hab.

    Das funktioniert auch alles. Nur hab ich jetzt das Problem, dass ich eine Abfrage brauch, die mir die Threads so ordnet, dass die neuen Einträge zuerst sind!

    Durch was zeichnen sich neuere Threads aus? Besitzen diese eine höhere id als die alten? Wenn ja, dann sollte dir folgender Query weiterhelfen. Beachte vor allem das «ORDER BY id DESC», damit wird anhand der id absteigend (d.h. größere zuerst) sortiert.

      
      
    SELECT  
           id,  
           title,  
           ...  
    FROM  
           threads  
    ORDER BY  
             id DESC  
    
    

    Eventuell ist das «ORDER BY id DESC» von dir auch durch «ORDER BY datum DESC» zu ersetzen, sofern eine Spalte «datum» vorhanden ist.

    Grüße,
    Fabian St.

    1. Hi!

      Hallo!

      Durch was zeichnen sich neuere Threads aus? Besitzen diese eine höhere id als die alten? Wenn ja, dann sollte dir folgender Query weiterhelfen. Beachte vor allem das «ORDER BY id DESC», damit wird anhand der id absteigend (d.h. größere zuerst) sortiert.

      Die Zeichnen sich durch ein neueres create_date aus. Hab ich  mehrere Threads, sollte immer der Thread als erster sein, der den letzten Post hat. Ich denke ich muss die beiden Tabellen verknüpfen, aber ich weiß nicht genau wie ich das machen kann.

      SELECT
             id,
             title,
             ...
      FROM
             threads
      ORDER BY
               id DESC

      
      >   
        
      Das funktioniert leider nicht, da ich ja auch die Einträge berücksichtigen will!  
        
      
      >   
      > Grüße,  
      > Fabian St.  
      
      Danke  
      Daniel  
      
      > 
      
      1. Hi!

        [...]

        SELECT
               id,
               title,
               ...
        FROM
               threads
        ORDER BY
                 id DESC

        
        > >   
        >   
        > Das funktioniert leider nicht, da ich ja auch die Einträge berücksichtigen will!  
          
        Dann habe ich dein Ausgangsposting wohl etwas falsch verstanden ;-) Naja, Ilja hat dir ja bereits eine mögliche Lösung geliefert.  
          
        Grüße,  
        Fabian St.  
        
        -- 
        Selfcode: [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:( ss:) de:> js:| ch:? mo:) zu:)](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%28+ss%3A%29+de%3A%3E+js%3A%7C+ch%3A%3F+mo%3A%29+zu%3A%29)
        
  2. yo,

    Ich hoff ihr wisst was ich mein!

    SELECT t.id, t.titel, MAX(e.erstelldatum) AS Last
    FROM thread as t, entry as e
    WHERE t.id = e.thread_id
    GROUP BY t.id, t.titel
    ORDER BY 3,2

    ILja

    1. yo,

      Ich hoff ihr wisst was ich mein!

      SELECT t.id, t.titel, MAX(e.erstelldatum) AS Last
      FROM thread as t, entry as e
      WHERE t.id = e.thread_id
      GROUP BY t.id, t.titel
      ORDER BY 3,2

      Danke, war genau das, was ich gebraucht hab!

      ILja

      Daniel