Om du lägger till
SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY';
Då kommer du att se varför andra RDBMS inte tillåter denna syntax:
- 3 osammanställda kolumner i SELECT men en i GROUP BY
- ORDER BY-kolumnen är inte i GROUP BY/SELECT och inte aggregerad
Om du vill GRUPPERA EFTER istället för DISTINCT, måste du GRUPPERA EFTER alla kolumnen i VÄLJ
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
Men då har du ingen chk.order
att beställa efter, oavsett om du använder GROUP BY eller DISTINCT
Så hur är det med det här, ignorera dubbletter helt?
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
Eller detta för att BESTÄLLA MED den tidigaste beställningen per 3x services
kolumner
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)