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")