beginer123, ну и что, что запустят одновременно? Если скрипт написан правильно, то в нём должна быть предусмотрена либо атомарная операция изменения данных, либо блокировка данных на период их обработки.
Umid, Левый сдвиг на 1 эквивалентен умножению на 2.
Если m и n чётные, то nod(m, n) = 2*nod(m/2, n/2)
Вместо накопления множителя можно накапливать сдвиг.
mir546: Оно корректнее. При группировке GROUP BY все выбираемые данные должны использоваться либо в агрегатных функциях, либо в самом GROUP BY.
Ваше решение работать в таком виде не будет, поскольку поле `id` есть в обоих таблицах, возникнет неопределённость. Но даже если это исправить, то какое именно значение `name_file_jpg` будет выбрано из возможных - MySQL не гарантирует.
Кроме того, в MySQL 5.7 по умолчанию стоит строгий режим, и запрос будет выдавать ошибку, показывая, что поля `name`, `color` и `name_file_jpg` не входят ни в группировку ни в агрегатные функции.