У меня есть следующий запрос, который отлично работает и показывает мне, где значения tbl_staff.staff_id и tbl_lead.rlog_create_user_id не совпадают.
SELECT
tbl_staff.staff_id,
tbl_staff.username,
tbl_lead.rlog_create_user_name,
tbl_lead.rlog_create_user_id
FROM
tbl_staff
JOIN tbl_lead ON tbl_staff.username = tbl_lead.rlog_create_user_name
AND tbl_staff.staff_id <> tbl_lead.rlog_create_user_id;
Запрос возвращает такие значения, когда вы видите, что 1014 не соответствует 1004.
1014 bubba bubba 1004
Я хочу обновить значение в tbl_lead.rlog_create_user_id до того же значения, что и в tbl_staff.staff_id.
Я попытался вставить команду SET, но это дало мне общую синтаксическую ошибку:
SELECT
tbl_staff.staff_id,
tbl_staff.username,
tbl_lead.rlog_create_user_name,
tbl_lead.rlog_create_user_id
FROM
tbl_staff
JOIN tbl_lead ON tbl_staff.username = tbl_lead.rlog_create_user_name
AND tbl_staff.staff_id <> tbl_lead.rlog_create_user_id
SET tbl_lead.rlog_create_user_id=tbl_staff.staff_id ;
Фактическая ошибка:
[Err] 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'SET tbl_lead.rlog_create_user_id = tbl_staff.staff_id' в строке 10
Я попытался изменить команду SELECT и UPDATE, используя этот вопрос, но все равно не смог заставить его работать: как я могу выполнить инструкцию UPDATE с JOIN в SQL?
Попробуй это
UPDATE tbl_lead
JOIN tbl_staff ON tbl_staff.username = tbl_lead.rlog_create_user_name
SET tbl_lead.rlog_create_user_id = tbl_staff.staff_id
WHERE tbl_staff.staff_id <> tbl_lead.rlog_create_user_id;
Вы так пробовали?
UPDATE tbl_staff, tbl_lead
SET tbl_lead.rlog_create_user_id = tbl_staff.staff_id
WHERE tbl_staff.username = tbl_lead.rlog_create_user_name
tbl_staff
или tbl_lead
?
tbl_lead
обновляется соответствующим значением из tbl_staff