Ankündigung

Einklappen
Keine Ankündigung bisher.

Hartnäckiges SQL Query...

Einklappen

Neue Werbung 2019

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

  • Hartnäckiges SQL Query...

    Hallo,
    Ich habe ein nachrichtensystem auf Mysql /php basis entwickelt, in welchem nachrichten an benutzer und/oder gruppen geschickt werden. Damit nachrichten auch als gelesen / ungelesen markiert sein können, musste ich eine extra tabelle die diese information enthält (benutzer_id und nachricht_id) anlegen. klappt prima.
    Jetzt wird von mir verlangt, den nachrichten eingang nicht nur nach datum zu sortieren, sondern erst nach gelesen / ungelesen und dann nach datum.
    meine tabellen sehen so aus:
    Nachrichten:
    id (int, autoinc) primärschlüssel
    datum (datetime)
    betreff, text(varchar)
    ..

    Benutzer:
    login (varchar) primärschlüssel
    ..

    verteiler_benutzer:
    nachricht_id (int) primärschlüssel
    benutzer_login (varchar) primärschlüssel

    verteiler_gruppen:
    gruppen_id (varchar) primärschlüssel
    nachricht_id (int)primärschlüssel

    nachrichten_gelesen:
    nachricht_id (int) primärschlüssel
    benutzer_login (varchar) primärschlüssel
    bemerkung: damit diese tabelle nicht irgendwann riesengroß wird, gilt eine nachricht als gelesen, wenn in dieser tabelle KEIN eintrag für die nachricht vorhanden ist.

    mein bisheriges query:
    Code:
    SELECT * FROM nachrichten WHERE (id in (SELECT nachricht_id FROM verteiler_benutzer WHERE benutzer_id="'.$user_login.'")			or id in (SELECT nachricht_id FROM verteiler_gruppen WHERE gruppen_id="'.$gruppe.'")) ORDER BY datum DESC;
    Leider komme ich nicht auf ein query, welches mir die datensätze zuerst nach gelesen /ungelesen (neue zuerst) und dann nach datum sortiert ausspuckt..
    ich hoffe es hat jemand eine idee und kann mir helfen!!
    Vielen Dank!
    Gruß
    Nico


  • #2
    Es kann mehr als ein Sortierkriterium angegeben werden.
    ORDER BY kritA,kritB
    Wenn sich zwei Datensätze in kritA unterscheiden, werden sie danach angeordnet und die Sache ist gegessen. Sind sie in kritA gleich, werden sie nach kritB angeordnet.

    Kommentar

    Lädt...
    X