2009-03-03 3 views
1

각 항목의 주문 정보와 함께 항목 목록을 가져 오려고합니다. 주문에는 항상 최소한 1 개의 항목이 연결되어 있습니다. 이 목록을 10 주문의 모든 항목으로 제한하고 싶습니다. 내 검색어가 아래에 표시되면 1030 항목이이됩니다. 이 주문을 10 개 주문으로 제한하는 가장 좋은 방법은 무엇입니까? 10 개 또는 200 개의 행이 될 수 있습니다.SQL을 사용하여 결과를 별개의 열로 제한

SELECT o.*, i.* 
FROM orders o, items i 
WHERE i.order_id = o.id 
LIMIT 0, 10 

감사합니다.

답변

2

먼저 주문을 제한하는 subselect를 사용해보십시오. 그런 다음 외부 선택에서 모든 항목을이 10 개의 주문으로 가져올 수 있습니다. 추측을 할 뿐이다

SELECT o.*, i.* 
FROM items i, (SELECT * FROM orders LIMIT 0, 10) o 
WHERE i.order_id = o.id 
+0

첫 번째와 간단한 대답 - 당신이 얻을 수표. 나는이 방법으로 subselect를 사용하는 것을 생각하지 않았다. 감사합니다! – Wickethewok

2
SELECT oo.*, i.* 
FROM (
    SELECT * 
    FROM orders o 
    LIMIT 10 
) oo , items i 
WHERE i.order_id = oo.id 
1

이 같은

SELECT o.*, i.* 
FROM orders o, items i 
WHERE i.order_id = o.id and 
o.id in (select o.id from orders o limit 0, 10) 
1

뭔가 작업을해야 mysql을 모르는 :

SELECT o.*, i.* 
FROM items i INNER JOIN orders o ON o.id = i.order_id 
WHERE o.order_id IN (
    SELECT o.id 
    FROM orders 
    LIMIT 0, 10 
) 
1
SELECT orders1.*, items.* 
FROM 
(select * from orders 
LIMIT 10) AS orders1 
LEFT JOIN items ON orders1.id = items.order_id; 
관련 문제