SQL

2009-03-03 21 views
1

ile ayrı bir sütuna sonuçları sınırlandırma Her öğenin sipariş bilgileriyle birlikte bir öğe listesi elde etmeye çalışıyorum. Bir siparişin her zaman onunla ilişkili en az 1 öğe vardır. Bu listeyi, numaralı siparişten 10 siparişleri ile sınırlandırmak istiyorum. Sorgumun altında durduğunda, ürününü 10 ürün alır. Bu siparişlerle ilişkili tüm öğeleri (10 satır veya 200 satır olmak) kaparken, bunu 10 siparişe LIMIT etmenin en iyi yolu nedir?SQL

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

Çok teşekkürler!

cevap

2

Önce siparişleri sınırladığınız bir alt seçim kullanmayı deneyin. Dış seçiminde, tüm öğeleri bu 10 siparişe getirebilirsiniz. tahmin etmek ancak

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

Birinci ve basit cevap - Alacağınız kontrol. Bu şekilde bir alt seçim yapmayı düşünmemiştim, teşekkürler! – Wickethewok

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

böyle

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

şey çalışmalıdır mysql bilmiyorum:

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;