似たような質問をたくさん見かけますが、それらは複雑すぎて理解できないか、同じことを尋ねているようには見えません。
簡単です。ユーザー (dmid) とダウンロード (dfid) の 2 つの列があります。
特定のファイルをダウンロードしたすべてのユーザーを選択:
SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"
上記のユーザーを使用して、ダウンロードしたすべてのファイルを見つけます。
SELECT dfid from downloads_downloads WHERE dmid = {user ids from #1 above}
dfid の結果を数えて並べ替えて、各ファイルが何回ダウンロードされたかを確認できます。
dfid dl_count_field ---- -------------- 18 103 3 77 903 66
答えようとする私の試み。
これは近いように見えますが、MySql が停止し、30 秒経っても応答しません。最終的に Apache を再起動します。また、ステートメントが複雑であるため、構文エラーを発生させずに count と order by を構造化する方法もわかりません。また、正しいステートメントでさえない可能性もあります。
SELECT dfid from downloads_downloads WHERE dmid IN (
SELECT DISTINCT dmid FROM `downloads_downloads` where dfid = "7024")