Добрый день. У меня есть таблица (A) с несколькими полями и другая таблица (B) с четырьмя полями, которые я хочу обновить в первой таблице. Одна из проблем заключается в том, что вторая таблица (B) не соответствует количеству записей (500 записей), которое первая таблица (A) имеет (6000 записей), поэтому нет общего идентификатора, который усложняет задачу. Я беру столбец, присутствующий в обеих таблицах, чтобы принять его как идентификатор. У меня уже есть функция для обновления, но она работает только частично, потому что она вставляет первое значение второй таблицы (B) в шесть тысяч записей первой таблицы (A).
Можно ли выполнить обновление консоли или мне нужно сделать это вручную по одному?
UPDATE A_posts, B_posts
SET B_posts.post_director = A_posts.post_director
WHERE EXISTS(SELECT DISTINCT t1.post_title
FROM B_posts as t1
WHERE NOT EXISTS (SELECT post_title FROM A_posts as t2 WHERE t2.post_title = t1.post_title))
В качестве общего идентификатора я беру столбец post_title, то есть, если post_title совпадает в обеих таблицах, то выполняет обновление post_director
Хотя он работает частично, я не знаю, правильно ли задан запрос, потому что, очевидно, он не выполняет то, что я хочу.
Решение, чтобы обновлять таблицу A, было бы этим:
UPDATE
A_Post
JOIN
B_Post B
ON B.post_title = A.post_title
SET
A.post_director = B.post_director;
Только actulizaran реестры таблицы A, где post_title
встретился в двух подмостках.