Mysql выбрать данные по условию

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

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

всем привет. есть таблица
Листинг программы
  1. phone duration
  2. 4995417636 0
  3. 4995417636 0
  4. 4995417636 10
  5. 4995418933 0
  6. 4995418933 5
  7. 4995418933 0
  8. 4995410866 0
  9. 4995410866 0
  10. 4995410866 20
  11. 4995419516 20
  12. 4995419551 5
  13. 4995480122 20
  14. 4995417780 0
  15. 4995487406 0
нужно выбрать одно значение поля "phone" где значение "duration" меньше 10, но при этом если хотя бы одно значение "duration" больше 10, то "phone" не выбирается, т.е . должно получится так: 4995418933 4995419551 4995417780 4995487406 Пробовал и через GROUP BY и через DISTINCT, но не знаю как правильно сделать выборку по условию, что если хотя бы одно значение "duration" больше 10, то это значение выбирать не нужно. Спасибо за помощь.

Решение задачи: «Mysql выбрать данные по условию»

textual
Листинг программы
  1. SELECT DISTINCT phone FROM mytest T1 WHERE Duration < 10 AND NOT EXISTS(SELECT phone FROM mytest T2 WHERE T2.phone = T1.phone AND Duration >= 10);

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

В данном коде происходит выборка уникальных значений поля phone из таблицы mytest, удовлетворяющих следующим условиям:

  1. Значение поля Duration меньше 10.
  2. Не существует записей в таблице mytest, у которых значение поля phone равно значению поля phone текущей записи и значение поля Duration больше или равно 10. Список элементов кода:
  3. SELECT DISTINCT phone — выборка уникальных значений поля phone.
  4. FROM mytest T1 - выборка данных из таблицы mytest.
  5. WHERE Duration < 10 - установка условия на значение поля Duration.
  6. AND NOT EXISTS(SELECT phone FROM mytest T2 WHERE T2.phone = T1.phone AND Duration >= 10) — проверка наличия записей, удовлетворяющих условию. Получается, что в результате выполнения данного запроса будут возвращены уникальные значения поля phone, для которых выполняются условия: значение поля Duration меньше 10 и не существует записей с таким же значением поля phone и значением поля Duration больше или равно 10.

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


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

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

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

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

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

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