MySQL скрипт для добавления вывода запроса в качестве ввода в другой запрос - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь написать пару запросов в MySQL, для которых необходимо выполнить следующее: Здесь запрос вернет все записи, которые соответствуют caseid = 702, с объединением из другой таблицы.

SELECT db.tab1.id as id
  FROM db.tab1 JOIN db.tab2
    ON db.tab1.caseid = db.tab2.padid
 WHERE db.tab1.caseid=702

Я хочу взять выходные данные этого запроса и вставить в качестве массива в оператор UPDATE для другой таблицы t3.

Как мне это сделать на MySQL?Я прочитал несколько ресурсов на курсоре или мне нужно написать хранимую процедуру для него?

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Обновление от объединения, как это:

   update a set a.yourcolumn=a.newcolumnvalue 
     from t3 a join (
     SELECT db.tab1.id as id
      FROM db.tab1 JOIN db.tab2
        ON db.tab1.caseid = db.tab2.padid
     WHERE db.tab1.caseid=702)b
     on a.id=b.id
0 голосов
/ 25 мая 2018

Как насчет:

update table_a set col1 = value1
  where id in (
    SELECT db.tab1.id as id
      FROM db.tab1 JOIN db.tab2
        ON db.tab1.caseid = db.tab2.padid
     WHERE db.tab1.caseid=702
  );

Второй раунд: я позволил себе рефакторинг вашего запроса.Надеюсь, это поможет:

update evou e
  set status = 1234 
  where vid in (
    SELECT vid 
      FROM pay p
      where p.resoncode = 222 
        and p.vid = e.vid
    )
  and e.status=70006
...