count() und order Problem

  • geschlossen
  • MySQL

  • karschti
  • 925 Aufrufe 3 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • count() und order Problem

    Ich habe folgende Tabelle:

    Quellcode

    1. id Downloads Users_idUsers Files_id Files Download Time
    2. 1 1 1 2009-03-21
    3. 2 1 1 2009-03-01
    4. 3 1 1 2009-04-01

    Mache folgende Abfrage

    Quellcode

    1. select downloadtime,count(*) as anz
    2. from downloads d
    3. WHERE users_idUsers = 1

    Ergebnis ist:

    Quellcode

    1. downloadtime anz
    2. 2009-03-21 3


    Ich möchte aber den letzten Download, also

    Quellcode

    1. downloadtime anz
    2. 2009-04-01 3

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Broken Sword () aus folgendem Grund: Code und ggf tab hinzugefügt

  • Hi,
    ich habe erstmal etwas Ordnung gemacht, damit man auch durchsieht (Das bitte ich dich in Zukunft selbst zu machen).
    @topic
    Wo ist jetzt dein Problem? Es werden alle 3 ausgegeben (nach jedem mysql_fetch die nächste Reihe)
    Wenn du es ordnen willst, hilft MySQL :: MySQL 5.0 Reference Manual :: 7.2.13 ORDER BY Optimization
    In deinem Fall müsste das denn

    Quellcode

    1. ORDER BY `downloadtime` DESC
    heißen.

    Sonst:
    Ich nehme an, dass das d ein Flüchtigkeitfehler ist

    Quellcode

    1. select downloadtime,count(*) as anz
    2. from downloads [B][U][I]d[/I][/U][/B]
    3. WHERE users_idUsers = 1

    und du in deiner Auflistung bei der Tabelle downloadtime mit Time betitelst.
    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • nein - nicht richtig verstanden:

    die tabelle war wirklich so gemeint (4 Spalten)

    Quellcode

    1. idDownloads Users_idUsers Files_idFiles DownloadTime
    2. 1 1 1 2009-03-21
    3. 2 1 1 2009-03-01
    4. 3 1 1 2009-04-01
    5. 4 2 1 2008-01-01


    und ich will die Abfrage "pro User, die Anzahl der gedownloadeten Datei" haben und mir das letzte download-Datum dazu

    ich bin bisher dazu gekommen:

    Quellcode

    1. select downloadtime,count(*) as anz
    2. from downloads
    3. where users_idusers = 1



    also ergebnis

    downloadtime anz
    2009-03-21 3



    ich will aber das letzte download-Datum des User mit der ID 1 vom Files 1 un die Anzahl der Downloads des betreffenen Files


    downloadtime anz
    2009-04-01 3


    Löung habe ich in einem anderen Forum von einem freundlichen Helfer:

    SQL-Abfrage

    1. SELECT max(downloadtime) as downloadtime,count(*) as anz
    2. from downloads
    3. WHERE users_idUsers = 1
    4. group by files_idfiles

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Broken Sword ()