Задать вопрос

Как составить MYSQL запрос на сравнение и обновление таблиц?

Здравствуйте. Помогите составить запрос на mysql.
У меня есть две таблицы:
table_E и table-I.
Картинка
tabl1e.png

На словах, запрос звучит так:

Выбрать table_E.obj_id и найти obj_id в table_I.
узнать table_I.field_id, где одинаковое varchar_val в таблицах.
Если table_I.field=483, то обновить table_I.float_val (где table_I.field=268), значением table_E.float_val
Если table_I.field=484, то обновить table_I.float_val (где table_I.field=467), значением table_E.float_val
...
Если table_I.field=499, то обновить table_I.float_val (где table_I.field=482), значением table_E.float_val

и второй запрос, наподобие:

Выбрать table_E.obj_id и найти obj_id в table_I.
узнать table_I.field_id, где одинаковое varchar_val в таблицах.
Если table_I.field=483, то обновить table_I.varchar_val(где table_I.field=446), значением table_E.old_p
Если table_I.field=484, то обновить table_I.varchar_val (где table_I.field=515), значением table_E.old_p
...
Если table_I.field=499, то обновить table_I.varchar_val (где table_I.field=271), значением table_E.old_p

Помогите, если есть возможность. Моих знаний явно недостаточно.
  • Вопрос задан
  • 2599 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@1x1
CREATE TEMPORARY TABLE tmp(I INT, E FLOAT);

INSERT INTO tmp VALUES(483, 268);

UPDATE table_I, table_E, tmp 
SET table_I.float_val = tmp.E 
WHERE table_E.obj_id = table_I.obj_id
AND table_I.field = tmp.I;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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