मेरे पास दो टेबल हैं: रत्न और जुआ जो शामिल हो गए हैं। मैं रत्न की मेज में 10 रिकॉर्ड्स में बाएं जॉइन को सीमित करने की कोशिश कर रहा हूं। 2 अन्य टेबल भी शामिल हैं (gemreply और उपयोगकर्ता), लेकिन वे समस्या में योगदान नहीं करते हैं। निम्नलिखित काम नहीं करता:बाएं को सीमित करें पहली तालिका में शामिल हों
SELECT gems.gemid, gems.title, r.tot, gemdetail.filename FROM ((gems
LEFT JOIN (SELECT gemid, COUNT(*) AS tot FROM gemreply GROUP BY gemid) AS r ON gems.gemid = r.gemid)
LEFT JOIN gemdetail ON gems.gemid = gemdetail.gemid)
LEFT JOIN users ON gems.userid = users.userid
WHERE gems.grade = '7' ORDER BY gems.gemid LIMIT 0, 10;
यह 10 को लौट पंक्तियों की कुल संख्या को सीमित करता है, लेकिन बाद से वहाँ कई विस्तार प्रत्येक मणि के लिए रिकॉर्ड कर रहे हैं, मैं 10 से कम मणि रिकॉर्ड के साथ छोड़ दिया है। मैंने प्रत्येक "LIMIT" पोस्ट पढ़ ली है, लेकिन इस स्थिति को नहीं मिला है।
अद्यतन 1: ठीक है - जेविलाड्रिच के लिए धन्यवाद - यह काम करता है। शायद एक मैं के साथ जाना होगा - yogeshr से कोड के नीचे भी काम करता है:
SELECT gems.gemid, gems.title, r.tot, gemdetail.filename
FROM ((gems
INNER JOIN (SELECT gems.gemid from gems WHERE gems.grade = '7' ORDER BY gems.gemid LIMIT 0, 10) g
ON (gems.gemid = g.gemid)
LEFT JOIN (SELECT gemid, COUNT(*) AS tot FROM gemreply GROUP BY gemid) AS r ON gems.gemid = r.gemid)
LEFT JOIN gemdetail ON gems.gemid = gemdetail.gemid)
LEFT JOIN users ON gems.userid = users.userid ;
अद्यतन 2: यहाँ कोड है। तुम दोनों का धन्यवाद!
उप-क्वेरी के भीतर सीमा को ले जाएं? – Ben
MySQL का यह संस्करण अभी तक 'LIMIT और IN/ALL/ANY/SOME subquery' का समर्थन नहीं करता है जो उप क्वेरी के अंदर होता है। – mseifert
ठीक है, तो क्या आप पहले 10 रत्नों और उनके सभी विवरणों का रिकॉर्ड चाहते हैं और फिर शामिल हों या LEFT- इसे gemreply और उपयोगकर्ताओं के साथ शामिल करें? – Rachcha