я следующая таблицу, product_taxonomy_id
:Найти строки из результатов одного запроса, которые удовлетворяют другое требование
| product_id | taxonomy_id | value_id |
+------------+-------------+----------+
| 1 | 2 | 4 |
| 1 | 1 | 1 |
| 2 | 1 | 1 |
| 2 | 3 | 8 |
| 3 | 2 | 5 |
| 3 | 1 | 2 |
| 4 | 1 | 1 |
| 4 | 2 | 4 |
| 4 | 3 | 8 |
Я хочу, чтобы получить product_ids, которые имеют таксономию = 1 и value_id = 1 И таксономии = 2 и value_id = 4.
продукты, которые отвечают первому требованию, являются: 1, 2, 4.
Из тех, требования, которые удовлетворяют второму требованию: 1, 4
Я могу сделать это с помощью следующего запроса:
SELECT DISTINCT `product_id` FROM product_taxonomy_value
INNER JOIN (SELECT DISTINCT `product_id` FROM product_taxonomy_value WHERE `taxonomy_id` = 1 AND `value_id` = 1) a USING (`product_id`)
INNER JOIN (SELECT DISTINCT `product_id` FROM product_taxonomy_value WHERE `taxonomy_id` = 2 AND `value_id` = 4) b USING (`product_id`)
Есть ли лучшее решение?
Спасибо @ McAdam331 за редактирование названия и устранение путаницы из вопроса. – tronmcp
Спасибо за ответы! – Josep
@Josep рад помочь. Если вы использовали какой-либо ответ для решения своей проблемы, пожалуйста, подтвердите его и примите его, нажав стрелку вверх и галочку рядом с ответом, который вам помог. – AdamMc331