अगर आप जोड़ते हैं
SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY';
फिर आप देखेंगे कि अन्य RDBMS इस सिंटैक्स की अनुमति क्यों नहीं देंगे:
- चयन में 3 गैर-एकत्रित कॉलम लेकिन ग्रुप बाय में एक है
- ऑर्डर बाय कॉलम ग्रुप बाय/सेलेक्ट में नहीं है और न ही एग्रीगेट किया गया है
यदि आप DISTINCT के बजाय GROUP करना चाहते हैं, तो आपको SELECT में सभी कॉलम द्वारा GROUP करना होगा
SELECT s.serviceid, s.servicenameit, s.servicenameen
FROM services s, kpi k, checklist_has_kpi chk
WHERE s.serviceid=k.serviceid AND k.kpiid=chk.kpiid AND k.inreport='yes' AND chk.checklistid=61
GROUP BY s.serviceid, s.servicenameit, s.servicenameen
लेकिन तब आपके पास कोई chk.order
नहीं है ऑर्डर करने के लिए, चाहे ग्रुप बाय या डिस्टिंट का उपयोग कर रहे हों
तो इसके बारे में क्या, डुप्लिकेट को पूरी तरह से अनदेखा करना?
SELECT s.serviceid, s.servicenameit, s.servicenameen
FROM services s, kpi k, checklist_has_kpi chk
WHERE s.serviceid=k.serviceid AND k.kpiid=chk.kpiid AND k.inreport='yes' AND chk.checklistid=61
ORDER BY chk.order ASC
या यह प्रति 3x services
. के अनुसार जल्द से जल्द ऑर्डर करने के लिए है कॉलम
SELECT s.serviceid, s.servicenameit, s.servicenameen
FROM services s, kpi k, checklist_has_kpi chk
WHERE s.serviceid=k.serviceid AND k.kpiid=chk.kpiid AND k.inreport='yes' AND chk.checklistid=61
GROUP BY s.serviceid, s.servicenameit, s.servicenameen
ORDER BY MIN(chk.order)