Таблица MySQL 2 в одном запросе

Я хочу использовать значение ISBN для книг, получивших наибольшее количество голосов, в таблице книг

Мой db->

**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)

чего ты пытаешься достичь? Слишком много вложенных подзапросов неэффективно и не масштабируемо

Madhur Bhaiya 22.10.2018 20:19
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
2
2
16
1

Ответы 1

Если вам нужен топ-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 в одинарные кавычки, но в конечном итоге используйте backtics .. и вы можете избежать предложения IN, используя внутреннее соединение, и последнее имя таблицы с минусом должно быть заключено в backtics

Другие вопросы по теме