Получение данных из 2 таблиц с отношением «один ко многим» с использованием лимита и смещения в «главной» таблице

Это кажется простым, поэтому я немного стесняюсь спросить, но вот оно: у меня есть 2 таблицы - заказы и предметы (заказов). В одном заказе может быть один или несколько предметов, и я хотел бы использовать LIMIT, чтобы получить, например. первые 10 ордеров, возможно тоже с использованием OFFSET, поэтому вопрос: как создать запрос, который бы это делал? Например, если заказ 1 состоит из 2 предметов, заказ 2: 1 предмет, заказ 3: 2 предмета, заказ 4: 1 предмет, и мне нужны первые 3 заказа, ожидаемый результат будет следующим:

  1. заказ 1 пункт 1
  2. заказ 1 пункт 2,
  3. заказ 2 пункт 1,
  4. заказ 3 пункт 1,
  5. заказ 3 пункт 2

Получите 10 заказов в CTE или подзапросе, затем присоединитесь к таблице элементов ... или я что-то упустил

P.Salmon 18.12.2020 16:02

P.Salmon Я не могу использовать CTE (MySQL 5.7), но я определенно поэкспериментирую с этим, как только перейду на лучший веб-хостинг. Не могли бы вы немного подробнее рассказать о подзапросе? Я все еще изучаю MySQL - сделайте это ответом, и я приму его, если вы не возражаете?

user3196181 18.12.2020 16:52
Освоение архитектуры микросервисов с 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
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использование подзапроса для ограничения и заданного

MariaDB [sandbox]> select * from cat_books;
+--------+-------+
| idbook | name  |
+--------+-------+
|      1 | book1 |
|      2 | book2 |
|      3 | book3 |
|      4 | book4 |
+--------+-------+
4 rows in set (0.001 sec)

MariaDB [sandbox]> select * from books_sold;
+---------+--------+--------+
| id_sold | idbook | iduser |
+---------+--------+--------+
|       1 |      1 |      1 |
|       2 |      2 |      1 |
|       3 |      1 |      2 |
|       4 |      1 |      3 |
|       4 |      3 |      5 |
+---------+--------+--------+
5 rows in set (0.001 sec)

MariaDB [sandbox]>
MariaDB [sandbox]> select *
    -> from
    -> (SELECT * FROM CAT_books order by idbook limit 2) cb
    -> join
    -> books_sold bs on bs.idbook = cb.idbook
    -> order by cb.idbook;
+--------+-------+---------+--------+--------+
| idbook | name  | id_sold | idbook | iduser |
+--------+-------+---------+--------+--------+
|      1 | book1 |       3 |      1 |      2 |
|      1 | book1 |       4 |      1 |      3 |
|      1 | book1 |       1 |      1 |      1 |
|      2 | book2 |       2 |      2 |      1 |
+--------+-------+---------+--------+--------+
4 rows in set (0.001 sec)

Ах, туда! Я экспериментировал с чем-то вроде этого, но что я пропустил, поместив LIMIT в подзапрос! Дорогой мой, мне нужен отдых! Большое спасибо!

user3196181 18.12.2020 17:47

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

Похожие вопросы