Вывести мастеров, которые оказывали все услуги - MySQL

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Подскажите пожалуйста запрос: – выведите мастеров, которые оказывали все услуги; по данной схеме

Решение задачи: «Вывести мастеров, которые оказывали все услуги»

textual
Листинг программы
  1. SELECT DISTINCT
  2. FROM Мастер AS М
  3. WHERE NOT EXISTS
  4.  (SELECT * FROM Услуга   WHERE NOT EXISTS
  5.                        ( SELECT * FROM Заявка AS
  6. WHERE  Услуга.Идентификатор=Заявка.Идентификатор AND
  7. Заявка.Идентификатор= Мастер.Идентификатор
  8.                       )
  9. )

Объяснение кода листинга программы

Код написан на SQL и предназначен для выбора мастеров, которые оказывали все услуги.

  1. SELECT DISTINCT - выбранные строки должны быть уникальными по всем столбцам, которые не являются частью оператора DISTINCT.
  2. FROM Мастер AS М - происходит выборка данных из таблицы Мастер и именованное соединение с ней (Мастер).
  3. WHERE NOT EXISTS - используется для проверки наличия строк, которые удовлетворяют условию.
  4. (SELECT * FROM Услуга WHERE NOT EXISTS - происходит выборка данных из таблицы Услуга, где нет строк, которые удовлетворяют условию.
  5. ( SELECT * FROM Заявка AS - происходит выборка данных из таблицы Заявка, где есть связь с таблицей Услуга через столбец Идентификатор.
  6. Услуга.Идентификатор=Заявка.Идентификатор AND - условие, которое связывает строки из таблицы Услуга и Заявка по столбцу Идентификатор.
  7. Заявка.Идентификатор= Мастер.Идентификатор - условие, которое связывает строки из таблицы Заявка и Мастер по столбцу Идентификатор.
  8. ) - закрывающая скобка для подзапроса. В итоге, код выбирает мастеров, которые не имеют заявок на услуги.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы