Ergebnisse aus einer SQL-Abfrage in einer anderen WHERE-Anweisung verwenden (Unterabfrage?)

Ich sehe viele ähnliche Fragen, aber sie sind entweder so komplex, dass ich sie nicht verstehe, oder sie scheinen nicht dasselbe zu fragen.

Es ist ganz einfach: Ich habe zwei Spalten: Benutzer (dmid) und Downloads (dfid).

Wählen Sie alle Benutzer aus, die eine bestimmte Datei heruntergeladen haben:

SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"

Suchen Sie mit den oben genannten Benutzern alle Dateien, die sie alle heruntergeladen haben:

SELECT dfid from downloads_downloads WHERE dmid = {user ids from #1 above}

Zählen und ordnen Sie die dfid-Ergebnisse, damit wir sehen können, wie viele Downloads jede Datei erhalten hat:

dfid    dl_count_field
----    --------------
18       103
3        77
903      66

Mein Versuch zu antworten.

Dies scheint in der Nähe zu sein, aber MySql bleibt hängen und reagiert auch nach 30 Sekunden nicht - ich starte Apache schließlich neu. Und ich weiß jetzt nicht, wie ich die Zählung und Reihenfolge strukturieren kann, ohne Syntaxfehler zu bekommen, weil die Anweisung komplex ist - und es kann sein, dass sie nicht einmal die richtige ist.

SELECT dfid from downloads_downloads WHERE dmid IN (
    SELECT DISTINCT dmid FROM `downloads_downloads` where dfid = "7024")

Antworten auf die Frage(1)

Ihre Antwort auf die Frage