В общем, MySQL не позволит вам указать SELECT
таблицу и UPDATE
ту же таблицу в том же запросе. Однако вы можете написать таблицу с несколькими таблицами UPDATE
путем объединения таблиц.
Как я прочитал ваш вопрос, кажется, следующим будет делать то же самое:
UPDATE test AS t
JOIN test_group_test AS tgt ON (t.id=tgt.test_id)
JOIN test AS t2 ON (tgt.test_id=t2.id)
SET t.agent=86
WHERE t2.agent IN (1)
AND tgt.testgroup_id NOT IN (20,58,23,37,447);
Хотя я не проверял этот запрос. Это означает пример использования JOIN
для таблицы с несколькими UPDATE
. Поэтому тщательно проверьте его, чтобы убедиться, что он делает то, что вы намереваетесь, и сохраняйте резервную копию исходных данных, если это не так.
См. https://dev.mysql.com/doc/refman/5.7/en/update.html для получения дополнительной информации о нескольких таблицах UPDATE
в MySQL.
Большое вам спасибо. Это сработало отлично. У меня были записи с дубликатами, но я должен был добавить их в NOT IN для выполнения моего запроса. Я узнал новую вещь, используя JOIN в "multi table" – Raj