Это кажется простым, поэтому я немного стесняюсь спросить, но вот оно: у меня есть 2 таблицы - заказы и предметы (заказов). В одном заказе может быть один или несколько предметов, и я хотел бы использовать LIMIT, чтобы получить, например. первые 10 ордеров, возможно тоже с использованием OFFSET, поэтому вопрос: как создать запрос, который бы это делал? Например, если заказ 1 состоит из 2 предметов, заказ 2: 1 предмет, заказ 3: 2 предмета, заказ 4: 1 предмет, и мне нужны первые 3 заказа, ожидаемый результат будет следующим:
P.Salmon Я не могу использовать CTE (MySQL 5.7), но я определенно поэкспериментирую с этим, как только перейду на лучший веб-хостинг. Не могли бы вы немного подробнее рассказать о подзапросе? Я все еще изучаю MySQL - сделайте это ответом, и я приму его, если вы не возражаете?
Использование подзапроса для ограничения и заданного
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 в подзапрос! Дорогой мой, мне нужен отдых! Большое спасибо!
Получите 10 заказов в CTE или подзапросе, затем присоединитесь к таблице элементов ... или я что-то упустил