Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक एकल SQL क्वेरी के भीतर कई मायने रखता है

@VoteyDisciple's answer सही रास्ते पर है, लेकिन उसकी क्वेरी में कुछ सुधार की आवश्यकता है:

SELECT c.id, c.title,
    SUM(ts1.section_id = 1) AS doc1,
    SUM(ts1.section_id = 2) AS doc2,
    SUM(ts1.section_id = 3) AS doc3,
    SUM(ts1.section_id = 4) AS doc4
FROM category AS c
  LEFT JOIN category_link_section AS ts1
    ON (c.id = ts1.category_id)
GROUP BY c.id;

स्पष्टीकरण:

  • IF() एक्सप्रेशन बेमानी हैं क्योंकि समानता पहले से ही 1 या 0 लौटाती है।
  • ts1.section_id=1 लें शामिल होने की स्थिति से बाहर, या आपको अन्य section_id कभी नहीं मिलेगा मान।
  • c.id के आधार पर समूहित करें केवल। मुझे लगता है कि ओपी प्रति श्रेणी केवल एक पंक्ति चाहता है, और प्रत्येक section_id . की गणना के लिए कॉलम चाहता है संबंधित श्रेणी के लिए मूल्य। यदि क्वेरी को c.id, ts1.section_id . द्वारा समूहीकृत किया जाता है , तो प्रति श्रेणी अधिकतम चार पंक्तियाँ होंगी।
  • चयन सूची में अल्पविरामों को हटा दें। लाइन की शुरुआत में तैरते कॉमा बदसूरत दिखते हैं।;-)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कोडनिर्देशक MySQL में पंक्तियों के रूप में बहुआयामी सरणी सम्मिलित करना

  2. त्रुटि:HHH000299:स्कीमा अद्यतन पूरा नहीं कर सका java.lang.NullPointerException

  3. 9 वास्तव में उपयोगी MySQL दिनांक फ़ंक्शन जो याद रखने में आसान हैं

  4. चयन कथन में एक चर सेट करें - MySQL

  5. मेरा प्रोग्राम Python में mysql कनेक्टर lib का उपयोग करके MySQL में मानों को संग्रहीत करने में सक्षम नहीं हो रहा है