Sortieren nach Ergebnis der sub-Abfrage in MySQL

Ich habe eine Tabelle, die einen Datensatz enthält für alle Download-Artikel und eine weitere Tabelle, die einen Datensatz enthält jeder download enthält das download-Datum und die id des Elements und die Benutzer, die Sie heruntergeladen.

Wenn ich eine Liste der Elemente aus der Datenbank möchte ich die Abfrage so Aussehen, wie oft ein Artikel heruntergeladen wurde, und dieser dann mit den anderen Element-Daten.

Hier meine SQL:

SELECT t1.*, 
(SELECT COUNT(*) 
    FROM tl_downloads 
    WHERE item_id = t1.id
    AND download_date > ?) 
AS downloads_count 
FROM tl_items AS t1 
ORDER BY downloads_count DESC

Obige Abfrage funktioniert in dem Sinne, dass ich eine zusätzliche Spalte in den Ergebnissen genannt 'downloads_count", die enthält die richtige Anzahl, aber es wird nicht lassen Sie mich, um durch diesen Wert.

Was muss ich tun, um in der Lage zu tun, um meine Ergebnisse, indem Sie den Rückgabewert in der sub-query?

Lassen Sie mich wissen, wenn Sie brauchen mehr Infos!!!

Edit - Sample-Daten

tl_items                tl_downloads

id  name                id  item_id  download_date
1   Item 1              1   1        1385964000 
2   Item 2              2   1        1385964000
3   Item 3              3   3        1385964000

Den Ergebnissen, die ich erwarten würde:

Item 1 - Downloads 2
Item 3 - Downloads 1
Item 2 - Downloads 0

Dank

Dein Beispiel scheint zu funktionieren nur fine eigentlich: SQL Fiddle. Aber ein Beitritt würde vermutlich die bessere Lösung sowieso.

InformationsquelleAutor jd182 | 2013-02-18

Schreibe einen Kommentar