Mysql 使用'上的限制和偏移量从具有一对多关系的两个表中获取数据;硕士';桌子
这似乎很简单,所以我有点不好意思问,但这里是:我有两个表-订单和项目(订单)。一个订单可以有一个或多个项目,我想使用LIMIT来获取,例如前10个订单,也可能使用OFFSET。因此,问题是:如何创建一个查询来实现这一点?例如,如果订单1有2个项目,订单2:1项目,订单3:2项目,订单4:1项目,我需要前3个订单,预期结果将是:Mysql 使用'上的限制和偏移量从具有一对多关系的两个表中获取数据;硕士';桌子,mysql,limit,one-to-many,Mysql,Limit,One To Many,这似乎很简单,所以我有点不好意思问,但这里是:我有两个表-订单和项目(订单)。一个订单可以有一个或多个项目,我想使用LIMIT来获取,例如前10个订单,也可能使用OFFSET。因此,问题是:如何创建一个查询来实现这一点?例如,如果订单1有2个项目,订单2:1项目,订单3:2项目,订单4:1项目,我需要前3个订单,预期结果将是: 订单1第1项 订单1第2项 订单2第1项 订单3第1项 订单3第2项 使用子查询来限制和给定 MariaDB [sandbox]> select * from ca
使用子查询来限制和给定
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)
在一个cte或子查询中获取10个订单,然后加入items表..或者我遗漏了什么P.Salmon我不能使用cte(MySQL 5.7),但一旦我移动到一个更好的web主机,我肯定会尝试使用它。你能详细说明一下子查询吗?我仍在学习MySQL-做一个答案,如果你不介意,我会接受它?啊,那样!我一直在尝试类似的东西,但我错过了在子查询中设置限制!亲爱的,我需要休息一下!太多了!