MySQL скрипт для добавления вывода запроса в качестве ввода в другой запрос

0

Я пытаюсь написать пару запросов в 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? Я прочитал немного ресурсов в Cursor или мне нужно написать хранимую процедуру для него?

Спасибо

  • 0
    Подходят ли вам ответы ниже?
  • 0
    Я еще не попробовал ваш. Но я попробовал другой, и это сработало. Я могу попробовать ваши позже. Спасибо
Теги:
stored-procedures
cursor

2 ответа

0
Лучший ответ

Как насчет:

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
  • 0
    Проблема, которая у меня есть, на самом деле это table_a и tab1. Поэтому выходные данные внутреннего выбора должны использоваться для обновления tab1 с помощью вызова UPDATE. Когда я пытаюсь выполнить этот запрос, я получаю сообщение об ошибке «Код ошибки: 1093. Вы не можете указать целевую таблицу« tab1 »для обновления в предложении FROM
  • 0
    Пожалуйста, опубликуйте точный SQL, который вы пытаетесь, который дает эту ошибку.
Показать ещё 3 комментария
0

Обновление из этого соединения:

   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
    Нет необходимости в подзапросе, просто присоединитесь к tab1 и tab2 в ОБНОВЛЕНИИ
  • 0
    Хотя MySQL должен просто перевести это на то же самое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню