如何使用子查询在表内联接复杂的SQL查询

时间:2018-11-10 13:25:25

标签: sql join

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

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

1 个答案:

答案 0 :(得分:1)

我将假设以下内容:

  • 您将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;