MySQL 2表中的一个查询

时间:2018-10-22 18:17:52

标签: mysql sql limit

我想在图书表中使用投票最多的图书的ISBN值

我的数据库->

**books-rate**
isbn-rate-user id

**books**
isbn-title-author

我编写了此查询,但是尽管使用了此查询,但仍能获得271000本书

SELECT * from books 
where books.ISBN IN (SELECT ISBN 
                     FROM 
                       (SELECT 'ISBN' as pis 
                        FROM books-rate 
                        GROUP BY `ISBN` 
                        ORDER BY COUNT(pis) DESC LIMIT 10) as xd)

1 个答案:

答案 0 :(得分:0)

如果您需要前10名,则可以使用

    SELECT *
    from books 
    INNER JOIN (
            SELECT  isbn 
            FROM `books-rate` 
            GROUP BY isbn
            ORDER BY COUNT(*) DESC 
            LIMIT 10
    ) t on t.isbn  = books.isbn

您不应该用单引号将您的columnn名称包装起来,而应使用反斜线..并且可以避免使用内部联接的IN子句,最后带有减号的表名应用反斜线括起来