MySQL обновить две таблицы без идентификатора

Добрый день. У меня есть таблица (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

Хотя он работает частично, я не знаю, правильно ли задан запрос, потому что, очевидно, он не выполняет то, что я хочу.

0
задан 02.12.2019, 18:36
1 ответ

Решение, чтобы обновлять таблицу 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 встретился в двух подмостках.

1
ответ дан 02.12.2019, 20:34
  • 1
    Интересное предложение. Я тестирую ее и комментирую. Спасибо!! – Texas 02.12.2019, 19:06

Теги

Похожие вопросы