如何使用子查询在表中加入复杂的 sql 查询

阿查拉·亚萨斯·皮亚拉特纳

我有一个带有“userid”、“bookid”、“sessionid”的表。

当访问者(userid)查看一本书(bookid)时,Web应用程序将查找查看过这本书(bookid)的用户(userids)查看过的所有书籍(bookid)并显示前5本书。

安东尼奥·阿尔瓦雷斯占位符图像

我将假设以下内容:

  • 您正在使用 MySQL 作为 DBMS。
  • 对于“前 5 本书”,您的意思是“考虑到查看当前书籍的用户的浏览量,浏览次数最多的 5 本书”。

假设用户此时正在访问图书 151,您可以使用以下查询来执行此操作:

SELECT bookid, COUNT(*) AS BookViews
FROM YourTable
WHERE userid IN (SELECT userid FROM YourTable WHERE bookid = 151)
GROUP BY bookid
ORDER BY 2 DESC
LIMIT 5;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章