Als je
. toevoegtSET SESSION sql_mode = 'ONLY_FULL_GROUP_BY';
Dan zie je waarom andere RDBMS deze syntaxis niet toestaan:
- 3 niet-geaggregeerde kolommen in SELECT maar één in GROUP BY
- ORDER BY-kolom staat niet in GROUP BY/SELECT en is niet geaggregeerd
Als u GROUP BY wilt in plaats van DISTINCT, dan moet u GROUP BY alle kolommen in de SELECT
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
Maar dan heb je geen chk.order
om op te bestellen, of u nu GROUP BY of DISTINCT gebruikt
Dus hoe zit het hiermee, duplicaten volledig negeren?
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
Of dit om te BESTELLEN OP de vroegste bestelling per 3x services
kolommen
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)