Обновить записи с помощью команды JOIN

0

У меня есть следующий запрос, который отлично работает и показывает мне, где значения 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?

  • 0
    Отредактируйте свой вопрос и включите полный текст ошибки.
  • 0
    ошибка теперь включена
Показать ещё 2 комментария
Теги:

2 ответа

2
Лучший ответ

Попробуй это

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;
0

Вы так пробовали?

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
  • 0
    Итак ... какую таблицу вы обновляете ??? tbl_staff или tbl_lead ?
  • 0
    tbl_lead обновляется соответствующим значением из tbl_staff

Ещё вопросы

Сообщество Overcoder
Наверх
Меню