SELECT ip.query, b.name, b.cover, ip.co AS VALUE FROM ( SELECT query, COUNT(ip_times.query) AS co FROM ip_times WHERE DATE_SUB(CURDATE(), INTERVAL 100 DAY) <= DATE(ip_times.date) AND path = '/GetBookById' GROUP BY ip_times.query ORDER BY co DESC LIMIT 23 ) ip LEFT JOIN books b ON ip.query = b.id