2010-11-13 14 views
8

मैं 3 टेबल है:MySQL बायाँ शामिल हों और COUNT()

  1. मंचों

आईडी, नाम, विवरण

  1. धागे

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:

      मेरा बुरा, मैंने ग्रुप बाय स्टेटमेंट रखा जहां यह होना नहीं था। अब हल हो गया है।

    उत्तर

    10

    ग्रुप द्वारा जाने के लिए सही तरीके से किया गया था, तो बस जोड़ें: GROUP BY t.thread_id

    0

    आप जोड़ना चाहिए GROUP BY t.thread_id, u.nick

    संबंधित मुद्दे