[SQL allgemein] Group by - dennoch alle Datensätze ?

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

  • [SQL allgemein] Group by - dennoch alle Datensätze ?

    Wenn ich mit GROUP BY Doppelte Datensätze eliminiere,
    dann habe ich keine Chance, in der selben Query alle Datensätze zu überprüfen, richtig?

    Bsp.:
    PHP-Code:
    WHERE mailbox_toid ".$_SESSION['id']."
                                        
    AND user_id mailbox_fromid
                                        GROUP BY user_id ORDER BY mailbox_id DESC LIMIT 
    ".$start.",".$pageadd); 
    Nun sollen aber alle Datensätze auf einen bestimmten Wert geprüft werden. Falls irgendwo ein Datensatz den gesuchten Wert besitzt, wird dieser später ausgegeben.

    In dem Beispiel sind es Nachrichten.
    Jede Nachricht beinhaltet einen Wert 0 oder 1 ob die Nachricht schon gelesen wurde.

    Werden nun alle Nachrichtn wie in einem Forum in einen Thread geschmissen, wie kann ich dann den einen Ausdruck markieren, sodass man sieht, das eine neue Nachricht beinhaltet wird?

    Exakt so, wie z.B. hier im Forum ist es nötig!

  • #2
    Abfragen mit SUM() ob der gesamte Wert über 0 ist.
    Kurzschlusslogik beachten.

    Danke -closed

    Kommentar


    • #3
      Ich bekomme 2 Datensätze ausgegeben.
      Warum aber ist $row['mailbox_status'] immer leer, obwohl die Abfrage mehrmals "1" lesen müsste?


      PHP-Code:
      ("SELECT user_nick,
                                              user_id,
                                              mailbox_id,
                                              mailbox_fromid,
                                              mailbox_toid,
                                              mailbox_timestamp,
                                              SUM(mailbox_status),
                                              mailbox_subject
                                          FROM mailbox,
                                              user
                                          WHERE mailbox_toid = "
      .$_SESSION['id']."
                                          AND user_id = mailbox_fromid
                                          GROUP BY user_id ORDER BY mailbox_id DESC LIMIT "
      .$start.",".$pageadd
      (Ich entschuldige meine Unwissenheit, die Syntax scheint aber zu stimmen. Hängt es mit dem GB zusammen?)

      Kommentar


      • #4
        Original geschrieben von phpMorpheus2
        Ich bekomme 2 Datensätze ausgegeben.
        Warum aber ist $row['mailbox_status'] immer leer, obwohl die Abfrage mehrmals "1" lesen müsste?


        PHP-Code:
        ("SELECT user_nick,
                                                user_id,
                                                mailbox_id,
                                                mailbox_fromid,
                                                mailbox_toid,
                                                mailbox_timestamp,
                                                SUM(mailbox_status),
                                                mailbox_subject
                                            FROM mailbox,
                                                user
                                            WHERE mailbox_toid = "
        .$_SESSION['id']."
                                            AND user_id = mailbox_fromid
                                            GROUP BY user_id ORDER BY mailbox_id DESC LIMIT "
        .$start.",".$pageadd
        (Ich entschuldige meine Unwissenheit, die Syntax scheint aber zu stimmen. Hängt es mit dem GB zusammen?)
        Ausgabe:
        PHP-Code:
        while($row mysql_fetch_assoc($mysql_result))    
                {
                    echo 
        "->".$row['mailbox_status']."<br>"
        Ich muss SUM(mailbox_status) ändern

        PHP-Code:
        SUM(mailbox_status) as status 
        In den internetbeispielen war dies nirgends zu sehen.
        Zuletzt geändert von phpMorpheus2; 02.12.2008, 14:56.

        Kommentar

        Lädt...
        X