UPATE в течение UPDATE в MySQL - PullRequest
       5

UPATE в течение UPDATE в MySQL

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

Можно ли выполнить UPDATE-SET-WHERE во вложенном порядке?

Например, элементы в таблице obj_B имеют идентификатор элементов в таблице obj_A. Выполните запрос на обновление, в котором сначала выберите и обновите элемент в obj_A, затем обновите соответствующий элемент в obj_B?

UPDATE obj_A
SET 
obj_A.col1 = "2020-12-12 00:00:00",
obj_A.col2 = "abc"
UPDATE obj_B 
SET
obj_B.col1 = "foo",
obj_B.col2 = "something",
obj_B.time = "2020-12-12 00:00:00"
WHERE obj_B.obj_A_ID = obj_A.id
WHERE obj_A.email = "123@gmail.com" AND obj_A.meta = "456"

Я знаю, что есть способ получить идентичные результаты (см. Ниже), но мне интересно Можно ли выполнить запрос рекурсивно.

UPDATE users, devices
SET 
obj_A.col1 = "2020-12-12 00:00:00",
obj_A.col2 = "abc",
obj_B.col1 = "foo",
obj_B.col2 = "something",
obj_B.time = "2020-12-12 00:00:00"
WHERE obj_A.email = "123@gmail.com" AND obj_A.meta = "456" AND obj_B.obj_A_ID = obj_A.id

1 Ответ

0 голосов
/ 10 апреля 2020
UPDATE    obj_A
LEFT JOIN obj_B ON obj_B.obj_A_ID = obj_A.id
SET obj_A.col1 = "2020-12-12 00:00:00",
    obj_A.col2 = "abc"
    obj_B.col1 = "foo",
    obj_B.col2 = "something",
    obj_B.time = "2020-12-12 00:00:00"
WHERE obj_A.email = "123@gmail.com"
  AND obj_A.meta = "456"

?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...