Update + Select в одном запросе Для одной таблицы

Есть одна таблица с 2 полями login и type. Как можно в одном запросе получить type у пользователя A и обновить type у пользователя Б


Ответы (1 шт):

Автор решения: splash58

Достаточно добавить еще один уровень

UPDATE users 
  SET type = (
      SELECT type FROM (
           select * from users
           ) t 
        WHERE login = 'user1' 
      ) 
   WHERE login = 'user2'

для нескольких полей

UPDATE users t1,
  (
  SELECT *
    FROM (
      SELECT f1,f2
        FROM users       
        WHERE login = 'user1'
    ) t2
SET t1.f1 = t2.f1, t1,f2 = t2.f2
WHERE login = 'user2'
→ Ссылка