Как объединить сложные SQL-запросы в таблице с помощью подзапросов - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть таблица с «идентификатором пользователя», «bookid», «sessionid».

Когда книга (bookid) просматривается посетителем (идентификатор пользователя), веб-приложение найдет все книги (bookid), просмотренные пользователями (идентификаторами пользователей), которые просматривали эту книгу (bookid), и отобразит 5 лучших книг.

1 Ответ

0 голосов
/ 10 ноября 2018

Я приму следующее:

  • Вы используете MySQL в качестве СУБД.
  • Под «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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...