我需要一个查询,将显示前7名的评论和收视率的书面总指标的用户,表明在书籍的总页数,他们审查
给出了3个表格的结构:
Books
:book_id,author_id,title,num_pages,publication_date,publisher_idRatings
:rating_id,book_id,username,ratingReviews
:review_id,book_id,username,text
我已经尽力了
SELECT
username,
SUM(reviews.reviews_id) AS total_reviews,
SUM(ratings.rating) AS total_ratings,
SUM(books.num_pages) AS total_pages
FROM
reviews
JOIN
ratings ON reviews.book_id = ratings.book_id
AND reviews.username = ratings.username
JOIN
books ON books.book_id = reviews.book_id
GROUP BY
username
ORDER BY
total_reviews + total_ratings DESC
LIMIT 7;
4条答案
按热度按时间bxfogqkk1#
试试这个查询:
t3psigkw2#
total_ratings
和total_reviews
无法识别!将您的查询用作子查询,然后对其应用顺序和限制:sirbozc53#
解决这个问题的一种方法是在评论和评级之间进行
FULL [OUTER] JOIN
。这里有一个db<>fiddle
ar5n3qh54#
我在我创建的示例表上测试了这个查询,它似乎工作正常。