2016-07-15 2 views
0

Я использую этот сайт все время, чтобы найти ответы на мои вопросы, но это первый раз, когда я спросил его.mysql - вставить результаты запроса в ту же таблицу с объединениями

У меня есть две таблицы и хотите запросить обе таблицы и вставить результаты в две колонки на таблице 1. Что-то вроде этого:

SELECT a.column1 from table1 a LEFT Join (SELECT 'column1' from 'table2') AS a ON where a.column1 like '%column1.table2%'; 

В основном затем вставить результат в column5 и column6 на столе 1

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

Если столбец1 в таблице1 подобен столбцу1 в таблице2, то обновите столбец5 в таблице1 с соответствующей записью из столбца2 в таблице2 и обновите столбец6 в таблице1 с помощью столбца7 из таблицы1 с соответствующей записью в столбце3 из Таблица 2;

Я понимаю, что это не лучшее объяснение, но это лучший способ объяснить, что я хочу. Пожалуйста, задавайте вопросы, если требуется дополнительная информация, и я сделаю все возможное, чтобы объяснить.

Спасибо за любой ввод, который у вас есть.

ответ

0

В MySQL вы можете делать обновления нескольких таблиц в одном операторе обновления с использованием соединений в списке таблицы:

update t1 inner join t2 on t1.column1 like concat('%',t2.column1, '%') 
set t1.column5=t2.column2, t1.column6=t2.column7 

Однако, используя, как это не обязательно самая лучшая идея, так как более 1 записей из t2 может соответствовать одной и той же записи в t1, поэтому одна запись t1 может обновляться несколько раз за один прогон.

Ваше описание того, какие поля t1 должны быть обновлены, какое поле из t2 неточно, на самом деле не может сказать логику.

+0

Это прекрасно работает. Огромное спасибо !!!! – noobie01

Смежные вопросы