我看到很多类似的问题,但它们要么是如此复杂,我无法理解它们,或者它们似乎并没有问同样的问题.
这很简单:我有两列:用户(dmid)和下载(dfid).
选择下载特定文件的所有用户:
SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"
Run Code Online (Sandbox Code Playgroud)使用上面的用户,找到他们都下载的所有文件:
SELECT dfid from downloads_downloads WHERE dmid = {user ids from #1 above}
Run Code Online (Sandbox Code Playgroud)计算并订购dfid结果,这样我们就可以看到每个文件收到的下载次数:
dfid dl_count_field
---- --------------
18 103
3 77
903 66
Run Code Online (Sandbox Code Playgroud)我试图回答.
这似乎很接近,但MySql陷入困境,即使在30秒后也没有响应 - 我最终重启了Apache.而且我现在不知道如何在没有语法错误的情况下构造计数和顺序,因为复杂的语句 - 它甚至可能不是正确的语句.
SELECT dfid from downloads_downloads WHERE dmid IN (
SELECT DISTINCT dmid FROM `downloads_downloads` where dfid = "7024")
Run Code Online (Sandbox Code Playgroud)