Użyj wyników z jednego zapytania sql w innej instrukcji where (podzapytanie?)
Widzę wiele podobnych pytań, ale albo są one tak złożone, że nie mogę ich zrozumieć, albo nie wydają się zadawać tego samego.
To proste: mam dwie kolumny: użytkownicy (dmid) i pliki do pobrania (dfid).
Wybierz wszystkich użytkowników, którzy pobrali określony plik:
SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"
Korzystając z powyższych użytkowników, znajdź wszystkie pobrane pliki:
SELECT dfid from downloads_downloads WHERE dmid = {user ids from #1 above}
Policz i zamów wyniki dfid, abyśmy mogli zobaczyć, ile pobrań otrzymali każdy plik:
dfid dl_count_field
---- --------------
18 103
3 77
903 66
Moja próba odpowiedzi.
Wydaje się to bliskie, ale MySql nie działa i nie odpowiada nawet po 30 sekundach - w końcu restartuję Apache. I nie mam teraz pojęcia, jak ułożyć liczbę i porządek bez otrzymywania błędów składniowych z powodu złożonej instrukcji - i może to być nawet niewłaściwe stwierdzenie.
SELECT dfid from downloads_downloads WHERE dmid IN (
SELECT DISTINCT dmid FROM `downloads_downloads` where dfid = "7024")