İki tablom var: birleştirilen değerli taşlar ve mücevher. LEFT JOIN'i taşlar tablosundaki 10 kayıtla sınırlamaya çalışıyorum. Aynı zamanda birleştirilmiş 2 tablo daha var, ama probleme katkıda bulunmuyorlar. Aşağıdaki çalışmaz:Bir Sol Sınırı ilk tabloya katılın
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;
Bu 10 döndürülen satır sayısını sınırlar, ancak her taş için birden ayrıntı kayıtları olmadığından, ben 10'dan az mücevher kayıtlarıyla kaldım. Her "LIMIT" yazısını okudum, ancak bu durumu bulamadım.
UPDATE 1: Tamam - jviladrich'e teşekkürler - işe yaradı. da çalışır altında yogeshr gelen kodu - Birlikte gideceğiz muhtemelen:
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 ;
GÜNCELLEME 2: İşte kod. İkinize de teşekkürler! O
SELECT * FROM A
INNER JOIN (SELECT * FROM A WHERE A.FIELD1='X' ORDER BY A.FIELD2 LIMIT 10) X
ON (A.KEYFIELD=X.KEYFIELD)
LEFT JOIN B ON (A.FIELD = B.FIELD)
LEFT JOIN C ON (A.FIELD = C.FIELD)
Alt sorgunun içindeki sınırı taşıyın mı? – Ben
MySQL'in bu sürümü henüz desteklenmiyor 'LİMİT & IN/ALL/ANY/SOME alt sorgusu' alt sorgunun içinde ne olduğunu. – mseifert
Tamam, ilk 10 mücevherlerin ve tüm detaylarının kaydını istiyor ve daha sonra gemreply ve kullanıcılarla birlikte KAT veya ona katılmayı mı istiyorsunuz? – Rachcha