Если вы добавите
SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY';
Тогда вы увидите, почему другие СУБД не разрешают этот синтаксис:
- 3 неагрегированных столбца в SELECT, но один в GROUP BY
- Столбец ORDER BY не находится в GROUP BY / SELECT и не агрегируется
Если вы хотите GROUP BY, а не DISTINCT, то вам нужно GROUP BY все столбцы в 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
Но тогда у вас нет chk.order
для заказа, используя GROUP BY или DISTINCT
Так что по этому поводу, полностью игнорируя дубликаты?
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
Или это для ЗАКАЗА по самому раннему заказу в 3х 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)