Как реализовать сложный запрос SQL?

Ситуация след-ая:
Есть 2 взаимосвязанные таблицы.
1 - работник (id, fio, status, inventar_id, last_active)
2 - инвентарь (id, name, status)

Необходимо наиболее оптимальным образом пометить всех работников которые долго не отчитывались пометить как "не работают", т.е. поставить им status=2 и в таблице инвентаря так же обновить статусы у каждого инструмента, который был взят этими работниками - status=1.

Может немного сумбурно но постараюсь объяснить - работник берет инструмент в таблицу "работник" в поле "inventar_id" вносится id первого свободного инструмента, соответственно если инструмент выдан работнику то в таблице "инструмент" в поле status ставится значение, пускай будет 1, мол что инструмент выдан и занят пока.

Пока это реализовано при помощи цикла. Запросов при работе возникает думаю слишком много. Пытался сделать в виде 1 запроса, но там ошибка что подзапрос выдает больше 1 строки.
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
Finesse
@Finesse
UPDATE
	`работник` AS r, 
	`инвентарь` AS i
SET 
	r.status = 2,
	i.status = 1
WHERE
	r.inventar_id = i.id AND
	r.last_active < нужная_дата
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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