Use resultados de uma consulta sql em outra instrução where (subconsulta?)

Eu vejo muitas perguntas semelhantes, mas elas são tão complexas que não consigo entendê-las, ou elas não parecem estar perguntando a mesma coisa.

É simples: tenho duas colunas: users (dmid) e downloads (dfid).

Selecione todos os usuários que baixaram um arquivo específico:

SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"

Usando os usuários acima, encontre todos os arquivos que eles baixaram:

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

Conte e ordene os resultados do dfid, para que possamos ver quantos downloads cada arquivo recebeu:

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

Minha tentativa de responder.

Isso parece próximo, mas o MySql fica parado e não responde mesmo após 30 segundos - eu reinicio o Apache eventualmente. E agora eu não sei como estruturar a contagem e a ordem sem obter erros de sintaxe por causa da declaração complexa - e pode nem mesmo ser a declaração correta.

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

questionAnswers(1)

yourAnswerToTheQuestion