Найти записи без связей - MySQL

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

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

Всем привет. Есть таблица product и options. И связывающая их таблица product_options. Пример данных в них: product: 1 title-product-1 2 title-product-2 options 1 title-option-1 2 title-option-2 3 title-option-3 product_options 1 | 1 1 | 2 2 | 1 Как видим 3я опция не связанна ни с каким продуктом. Как найти ид всех опций которые не связанны с продуктами.

Решение задачи: «Найти записи без связей»

textual
Листинг программы
SELECT * FROM options O
WHERE NOT EXISTS (SELECT 1 FROM product_options PO WHERE O.relation = PO.relation)

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

В данном коде выполняется запрос на выборку всех записей из таблицы options, которые не имеют связей с другими записями в таблице product_options. Это достигается за счет использования оператора NOT EXISTS, который проверяет наличие соединения между таблицами по полю relation. Если такое соединение существует, то запись не будет выбрана.

  1. SELECT * FROM options O — выборка всех записей из таблицы options
  2. WHERE NOT EXISTS (SELECT 1 FROM product_options PO — проверка наличия соединения с таблицей product_options
  3. WHERE O.relation = PO.relation) — условие, что поле relation в таблице options должно быть равно полю relation в таблице product_options
  4. SELECT 1 FROM product_options PO — выборка только одной записи из таблицы product_options для проверки наличия соединения
  5. WHERE O.relation = PO.relation — условие, что поле relation в таблице options должно быть равно полю relation в таблице product_options

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


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

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

15   голосов , оценка 4.333 из 5
Похожие ответы