Как сделать проверку колонок из разных таблиц?

Я новичок в mySQL, и у меня стоит задача, мне нужно что бы проводилась проверка колонки user_login с таблицы bloodcraft.wp_users, и колонки username с таблицы authme.authme2, и если эти колонки не равны (тоесть имеют разные значения) то выполнять следующий код:

INSERT INTO bloodcraft.wp_users (`user_login`, `user_pass`, `user_nicename`, `display_name`, `user_url`) SELECT `username`, `password`, `realname`, `realname`, 'https://тут мой сайт/' FROM authme.authme2;

На данном этапе у меня получился такой запрос:

SELECT `user_login`, `username`, IF(`user_login` != `username`, "YES", "NO") FROM authme.authme2, bloodcraft.wp_users;

Но куда мне вставить мой код с Insert? Вот результат работы Select, нужно что бы вместо YES выводился код (INSERT...) введите сюда описание изображения

Если поставить вместо YES то выдаст ошибку: #1064 - У вас ошибка в запросе. Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса около 'INTO bloodcraft.wp_users (user_login, user_pass, user_nicename, `displa...' на строке 1 Как мне сделать, что бы при срабатывании условия срабатывал код?


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

Автор решения: Мари

Как я понимаю, в MySQL нет оператора MERGE как в T-SQL, который очень пригодился бы) Думаю, здесь может помочь инструкция ON DUPLICATE KEY UPDATE, синтаксис будет примерно такой INSERT INTO bloodcraft.wp_users (user_login, user_pass, user_nicename, display_name, user_url) SELECT username, password, realname, realname, 'https://тут мой сайт/' FROM authme.authme2; ON DUPLICATE KEY UPDATE 'user_login' = VALUES('username');

→ Ссылка