'마스터'테이블에서 제한 및 오프셋을 사용하여 일대 다 관계가있는 2 개의 테이블에서 데이터 가져 오기

user3196181

이것은 간단 해 보이므로 물어보기가 조금 부끄럽지만 여기에 있습니다 : 주문과 항목 (주문)의 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
P. 연어

제한하고 주어진 하위 쿼리를 사용하여

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관