sortieren 2 tabellen nach neusten eintrag

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

  • sortieren 2 tabellen nach neusten eintrag

    ich habe zwei tabellen, beiträge (tab1) und kommentare (tab2).

    nun möchte ich eine liste auslesen wo immer nach dem neusten beitrag oder kommentar sortiert wird.

    also die beiden tabellen per join vereinigen ist klar, aber wie dann - order by ... ?

    kann mir da einer auf die sprünge helfen?

  • #2
    oder by date/timestamp oder was auch immer DESC, wenn du natürlich keine Zeitpunkt mitgespeichert hast, kannst du noch nach der ID der Beiträge sortieren, falls die Spalte auf autoincrement steht. Ist aber nicht so schön wie mit dem Zeitpunkt

    Kommentar


    • #3
      nun ja, ich habe aber in beiden tabellen datetime und wie gruppiere ich das dann in order by? ORDER BY beitrag.datetime DESC, kommentar.datetime DESC bringt mich dabei nicht weiter!!

      Kommentar


      • #4
        PHP-Code:
        $sql "SELECT
                             beitrag.content,
                             beitrag.datetime,
                             kommentar.content,
                             kommentar.datetime
                       FROM
                             beitrag
                       LEFT JOIN
                             kommentar ON beitrag.id_kommentar = kommentar.id
                       GROUP BY
                             kommentar.id_beitrag
                       ORDER BY
                             beitrag.datetime DESC, kommentar.datetime DESC"
        ;
        ..... 
        es soll immer der neusten beitrag oben stehen bzw den beitrag mit dem neusten kommentar!

        keiner einen tip oder lösung?

        Kommentar


        • #5
          Also ich würde ein select wie folgt vorschlagen:

          Code:
          SELECT
            MAX(IFNULL(k.date,b.date)),
            k.ID kommentar_id, 
            b.ID beitrag_id, 
            b.text   beitrag,
            k.text kommentar
          FROM 
            bericht b LEFT JOIN 
            kommentar k ON b.ID=k.FK_bericht
          GROUP BY
            b.ID
          ORDER BY
            IFNULL(k.date,b.date) DESC
          DAS IST NICHT GETESTET!!!! soll nur ein Ansatz sein
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Original geschrieben von MelloPie
            Also ich würde ein select wie folgt vorschlagen:

            Code:
            SELECT
              MAX(IFNULL(k.date,b.date)),
              k.ID kommentar_id, 
              b.ID beitrag_id, 
              b.text   beitrag,
              k.text kommentar
            FROM 
              bericht b LEFT JOIN 
              kommentar k ON b.ID=k.FK_bericht
            GROUP BY
              b.ID
            ORDER BY
              IFNULL(k.date,b.date) DESC
            DAS IST NICHT GETESTET!!!! soll nur ein Ansatz sein
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              das funktioniert, aber noch nicht so wie es sollte. wieso unterschlägt er mir die beiträge ohne kommentar?

              mal noch zur erläuterung, ich möchte eine übersicht auslesen die mir folgendes liefert:

              Beitrag Title 1/ 4.3.2008 13:00 Uhr (2 Antworten - Letzte Anwort von Tina 16:00 Uhr)
              Beitrag Title 3 / 4.3.2008 15:00 Uhr (0 Antworte)
              Beitrag Title 2/ 4.3.2008 14:00 Uhr (2 Antworten - Letzte Anwort von Micha 14:50 Uhr)

              usw....

              im grunde wie hier im forum, bei der übersicht eines themas!!

              ich weiss echt nicht weiter.. kann doch eigentlich nicht so schwer sein!?!

              Kommentar


              • #8
                poste mal deine Tabellen Struktur und die inhalte und das gewünschte ergebnis.
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar

                Lädt...
                X