Я довольно новичок, и у меня есть две таблицы: "продукт" и "атрибуты продукта".
Вот некоторые воображаемые данные (фактические данные включают в себя больше таблиц)
Таблица продуктов:
product_id | product_name
10 | aaa
11 | bbb
12 | ccc
Таблица атрибутов продукта:
attribute_id | product_id
21 | 10
23 | 10
24 | 10
21 | 11
24 | 11
21 | 12
25 | 12
Где каждый продукт имеет более одного возможного атрибута. У меня есть список идентификаторов атрибутов, таких как (21,10,25)
, и мне нужно выбрать все продукты, атрибуты которых являются подмножеством этого списка.
Возможно ли сделать это одним запросом?
Когда я фильтрую для (21,24), желаемый результат должен возвращать только продукт 11 (bbb)
Когда я фильтрую для (21,23,24), желаемым выходом является возврат продуктов 10 и 11.
Когда я фильтрую по (21), желаемый результат не должен возвращать ничего (поскольку все продукты имеют хотя бы один другой атрибут).