mysql обновление с несколькими объединениями - PullRequest
0 голосов
/ 11 апреля 2020

Я хотел бы обновить с 2 присоединения .... но:

 UPDATE glpi.glpi_users 
FROM
    glpi.glpi_groups_users
    INNER JOIN glpi.glpi_groups ON glpi.glpi_groups_users.groups_id = glpi.glpi_groups.id
    INNER JOIN glpi.glpi_users ON glpi.glpi_users.id = glpi.glpi_groups_users.users_id 
    SET glpi.glpi_users.id = 2 
WHERE
    glpi.glpi_groups.`name` LIKE 'technique'

1064 - у вас есть ошибка в вашем синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с 'FROM glpi.glpi_groups_users INNER JOIN glpi.glpi_groups ON glpi.glpi_groups_us' в строке 2 Время: 0s

спасибо за ваше помощь

1 Ответ

0 голосов
/ 11 апреля 2020

Я думаю, что вам нужен следующий синтаксис:

UPDATE glpi.glpi_users u
INNER JOIN glpi.glpi_groups_users gu ON gu.users_id = u.id
INNER JOIN glpi.glpi_groups g ON g.id = gu.groups_id
SET u.id = 2 
WHERE g.name = 'technique'

То есть: MySQL У синтаксиса update / join нет предложения FROM - он выглядит как UPDATE ... JOIN ... SET ... WHERE ....

Примечания:

  • , поскольку в правом операнде нет символов подстановки, name LIKE 'technique' эквивалентно name = 'technique'

  • псевдонимы таблиц облегчают написание и чтение запроса

...