mir546: Оно корректнее. При группировке GROUP BY все выбираемые данные должны использоваться либо в агрегатных функциях, либо в самом GROUP BY.
Ваше решение работать в таком виде не будет, поскольку поле `id` есть в обоих таблицах, возникнет неопределённость. Но даже если это исправить, то какое именно значение `name_file_jpg` будет выбрано из возможных - MySQL не гарантирует.
Кроме того, в MySQL 5.7 по умолчанию стоит строгий режим, и запрос будет выдавать ошибку, показывая, что поля `name`, `color` и `name_file_jpg` не входят ни в группировку ни в агрегатные функции.
Kulay: Странно, подзапрос обычно всегда выполняется полностью.
Да, а индекс по `seo_source`.`user_id` у вас есть? А отдельный индекс по `seo_user_request`.`request_id`?
XZeit: Решением там отмечено предложение создать хранимую процедуру, в которой в одной транзакции производятся все добавления, и вызывать эту процедуру вместо INSERT/UPDATE.
Ingernirated: Не обязательно писать на ассемблере. Многие компиляторы имеют возможность сгенерировать код на ассемблере из программы на C. Можно генерировать такой код для своих небольших программ и изучать его, видя одновременно строку на языке высокого уровня и её представление в машинных командах.