ОБНОВЛЕНИЕ SQL с подзапросом, который ссылается на ту же таблицу в MySQL

Я пытаюсь обновить значение столбца в группе строк в таблице с помощью UPDATE. Проблема в том, что мне нужно использовать подзапрос для получения значения для этого столбца, и он зависит от той же таблицы. Вот запрос:

UPDATE user_account student
SET student.student_education_facility_id = (
   SELECT teacher.education_facility_id
   FROM user_account teacher
   WHERE teacher.user_account_id = student.teacher_id AND teacher.user_type = 'ROLE_TEACHER'
)
WHERE student.user_type = 'ROLE_STUDENT';

Обычно, если учитель и ученик находятся в двух разных таблицах, mysql не будет жаловаться. Но поскольку они оба используют одну и ту же таблицу, mysql вместо этого выдает следующую ошибку:

ERROR 1093 (HY000): You can ' t указать целевую таблицу 'student' для обновления в предложении FROM

Есть ли способ заставить mysql выполнить обновление? Я на 100% уверен, что предложение from не пострадает при обновлении строк.

Если нет, есть ли другой способ написать это обновление sql, чтобы добиться того же эффекта?

Спасибо!

РЕДАКТИРОВАТЬ: Я думаю, что у меня все заработало:

UPDATE user_account student
LEFT JOIN user_account teacher ON teacher.user_account_id = student.teacher_id
SET student.student_education_facility_id = teacher.education_facility_id
WHERE student.user_type = 'ROLE_STUDENT';
40
задан OMG Ponies 17 June 2011 в 01:44
поделиться