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

Как реализовать сложный запрос 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 строки.
  • Вопрос задан
  • 244 просмотра
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 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 < нужная_дата
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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