我看到很多类似的问题,但它们要么太复杂,我不能理解它们,要么它们似乎没有问同样的问题。在另一个语句(子查询?)中使用一个sql查询的结果
很简单:我有两列:用户(dmid)和下载(dfid)。
选择谁下载特定文件中的所有用户:
SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"
使用上面的用户,找到所有他们所有下载的文件:
SELECT dfid from downloads_downloads WHERE dmid = {user ids from #1 above}
计数和秩序的英国国际发展部结果,所以我们可以看到每个文件接收的下载量有多少:
dfid dl_count_field ---- -------------- 18 103 3 77 903 66
我试图回答。
这看起来很接近,但MySql陷入泥潭,甚至在30秒后也不响应 - 我最终重新启动了Apache。我现在不会因为复杂的陈述而没有得到语法错误来构造计数和顺序 - 甚至可能不是正确的陈述。
SELECT dfid from downloads_downloads WHERE dmid IN (
SELECT DISTINCT dmid FROM `downloads_downloads` where dfid = "7024")
你不应该使用用双引号(''')来表示字符文字,用单引号代替。双引号是MySQL的东西,不能与其他DBMS一起工作(因为在标准SQL中,双引号用于标识符,而不是文字)。那个dfid是一个数值,你不应该使用任何引号。数字不需要引号。 –