Прежде всего, я не эксперт по запросам MySQL, и я не могу найти решение своей проблемы.
Пример:
SELECT SUM(IF(table1.col1<4,1,0)) AS score WHERE score>0 GROUP BY table1.col2
Вышеприведенное приведёт к ошибке, так как оценка по столбцу отсутствует в таблице 1.
Это мой обходной путь:
SELECT SUM(IF(table1.col1<4,1,0)) AS score GROUP BY table1.col2
Затем проверка каждой строки в PHP
if($row['score']>0){...
Существует проблема с производительностью, поскольку я зацикливаюсь на строках, которые, как я знаю, мне не понадобятся, в идеале мне нужно игнорировать эти строки в запросе.
Насколько я понимаю, предложение WHERE запускается для каждой строки таблицы, а не для сгруппированной строки.
Есть ли способ сделать это?