@eugene159

Как выбрать записи из таблицы, если их не существует (нужно выбрать товары, у которых какое-либо свойство не заполнено)?

Есть три таблицы:
options
product_options
products

В таблице options есть поля:
id, key, name

В таблице product_options есть поля:
product_id, key, value

В таблице products есть поля:
id, name, image, url

Мне нужно выбрать все товары, у которых не заполнено свойство manufacturer (Производитель).
Проблема в том, что если оно не заполнено, то в таблице просто нет записи.
А если нет записи, то как мне выбрать товары?

Я попытался помудрить с LEFT JOIN, но не получилось. Ничего не возвращается.
Вот мой код:
SELECT po.value as value, o.name as name
FROM  options o
LEFT JOIN product_options po ON (po.key = o.key)
LEFT JOIN products p ON (p.id = po.product_id)
WHERE po.value IS NULL
AND po.key = 'manufacturer'

Где ошибка?
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT *
FROM  `products`
WHERE `id` NOT IN (
  SELECT `product_id`
    FROM `product_options`
    WHERE `key` = 'manufacturer'
  )
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы