Таблицы https://wampi.ru/image/Rwq0hUw
У каждого товара 3 характеристики (цвет,размер,материал).
Нужно найти все товары с данными характеристиками: зеленый цвет, размер 10, материал шелк.
Написал такой запрос:
SELECT name,
product_id
FROM product_properties pp
JOIN products p ON pp.product_id = p.id
WHERE (TYPE = 'color'
AND value='Зеленый')
OR (TYPE = 'size'
AND value='10')
OR (TYPE = 'material'
AND value='Шелк')
GROUP BY product_id
HAVING COUNT(*) = 3
Запрос работает, результат меня устраивает.
Вопрос: почему запрос отрабатывает, а не вываливается в ошибку? В секции SELECT не может же быть тех полей, которых нет в Group By. Пытаюсь разобраться. Этот же запрос не работает в PostgreSQL, что на мой взгляд верно. Другие СУБД не тестил.