запрос?
UPDATE glpi_useremails
SET email = REPLACE(email, '@domain.ru', '@domain.com')
where id in
(Select id
from glpi_useremails
inner join
SELECT t2.uid as uid, t2.name as name
from
(SELECT glpi_users.id as uid, name, COUNT(*) c
FROM glpi_useremails
inner join glpi_users
on glpi_users.id = glpi_useremails.users_id
WHERE INSTR(email, '@domain.ru') > 0
GROUP BY users_id
HAVING c > 1)
as t2)
as t3
on glpi_useremails.users_id = t3.uid
WHERE INSTR(email, '@domain.ru') > 0
order by id)
Ругается, что
You can't specify target table 'glpi_useremails' for update in FROM clause
А что за СУБД такая, что не даёт ?
обычный мускуль
Ну для начала запрос синтаксически неправильный, исправляй....
И шли ТОЧНЫЕ тексты сообщений в следующий раз, это важно
SQL Error [1093] [HY000]: (conn=1171782) You can't specify target table 'glpi_useremails' for update in FROM clause
Я понимаю, что неверная конструкция получилась, вопрос в том, как сделать правильно =) Я в SQL не силён, увы.
Идиотизм какой-то...
Нет, там запрос синтаксически неверен
Это что за зверь такой ? inner join SELECT t2.uid as uid, t2.name as name
А GROUP BY в подзапросе вообще неверный. Вот это всё исправляй сначала, у тебя запрос перепишется, и, возможно, тогда уже эта проблема уйдёт.
Обсуждают сегодня