मैं 3 टेबल है:MySQL बायाँ शामिल हों और COUNT()
- मंचों
आईडी, नाम, विवरण
- धागे
thread_id, forum_id, user_id, शीर्षक, सामग्री, विचारों
post_id, thread_id, author_id, सामग्री, दिनांक
मैं क्या करना चाहता हूं कि सभी थ्रेड को फोरम में प्राप्त करें, और प्रत्येक थ्रेड की पोस्ट गिनती प्राप्त करें। इसलिए मुझे हर धागे मिलते हैं (जहां forum_id = जो कुछ भी) और फिर मैं परिणामों की गिनती करने के लिए टेबल पोस्ट के साथ जुड़ जाता हूं। लेकिन कुछ काम नहीं कर रहा है। यहां मेरी क्वेरी है:
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
WHERE
t.forum_id = $this->forumID
यह क्वेरी केवल उन धागे को दिखाएगी (मुझे लगता है) जिन पर कोई पोस्ट है। मैंने ग्रुप बाय स्टेटमेंट का उपयोग करने का भी प्रयास किया लेकिन यह MySQL त्रुटि बनाता है ...
मैं इसे कैसे हल कर सकता हूं?
----------- संपादित करें: मैं t.thread_id द्वारा समूह जोड़ने की कोशिश की, फिर भी, जैसा कि मैंने पहले भी कहा, MySQL त्रुटियों:
आप में एक त्रुटि है आपका एसक्यूएल वाक्यविन्यास; मैनुअल है कि सही वाक्य रचना के पास का उपयोग करने के लिए अपने सर्वर संस्करण से मेल खाती है जांच 'कहां t.forum_id = 2' लाइन पर 15
पूर्ण क्वेरी:
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
GROUP BY
t.thread_id
WHERE
t.forum_id = $this->forumID
संपादित करें 2:
मेरा बुरा, मैंने ग्रुप बाय स्टेटमेंट रखा जहां यह होना नहीं था। अब हल हो गया है।