Подзапрос:
SELECT id FROM users WHERE api_key = 'xxxx'
может возвращать более 1 строки, и в этом случае вы должны использовать оператор IN
:
UPDATE orders
SET product = ''
WHERE user_id IN (SELECT user_id FROM users WHERE api_key = 'xxxx');
Или вы можете сделать это с помощью join:
UPDATE orders o
INNER JOIN users u ON u.user_id = o.user_id
SET o.product = ''
WHERE u.api_key = 'xxxx';
Обратите внимание, что установка значения столбца на пустую строку, как правило, не является хорошей идеей. Лучше установить null
.