이것은 간단 해 보이므로 물어보기가 조금 부끄럽지만 여기에 있습니다 : 주문과 항목 (주문)의 2 개의 테이블이 있습니다. 하나의 주문에는 하나 이상의 항목이있을 수 있으며 LIMIT를 사용하여 예를 들어 처음 10 개의 주문을 얻고 싶습니다. OFFSET도 사용할 수 있습니다. 질문은 다음과 같습니다. 이렇게하는 쿼리를 생성하는 방법은 무엇입니까? 예를 들어, 주문 1에 2 개의 항목, 주문 2 : 1 항목, 주문 3 : 2 항목, 주문 4 : 1 항목이 있고 처음 3 개의 주문이 필요한 경우 예상 결과는 다음과 같습니다.
제한하고 주어진 하위 쿼리를 사용하여
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)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다