SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.08.2018 02:34:22

OTV
Участник
Зарегистрирован: 16.08.2018
Сообщений: 2

Выборка из двух таблиц

Добрый вечер.
Есть две таблицы

shop_category_products


id     product_id     category_id
1      100              1353
2      101              1354
3      102              1354
4      103              1355
 

shop_product_features

id     product_id     feature_value_id
1      100               48
2      100               49
3      100               50
4      101               48
5      101               49
6      101               50
7      102               55
 

Генерация запроса идет на пыхе, перебором из массива.
Я получаю:
`shop_category_products.category_id` = 1353,

`shop_product_features.feature_value_id` = 48,

`shop_product_features.feature_value_id` = 49,


Я должен получить все `product_id` (в этом примере это 100), которые входят в `shop_category_products.category_id` = 1353 если в таблице shop_product_features у product_id(100) `feature_value_id`=48 и `feature_value_id` = 49

У меня тут явно ошибка, он выбирает или один feature_value_id или второй, а что бы был и там и там, так не получается.

SELECT shop_category_products.product_id FROM shop_category_products, shop_product_features WHERE shop_category_products.category_id = 1353 AND shop_category_products.product_id = shop_product_features.product_id AND (shop_product_features.feature_value_id = 48) AND (shop_product_features.feature_value_id = 49)


Так как запрос динамический, в массиве обязательно получаю один динамический `shop_category_products.category_id` статический количество и значение нескольких `shop_product_features.feature_value_id` и надо получить все подходящие `product_id`
Возможно ли решить этот вопрос средствами mysql? Если да, то как это лучше делать? Одним огромным запросом, с одним подключением к бд, или сотнями маленьких? Заранее спасибо за ответ.

PS: Если криво оформил или некорректно сформировал вопрос, прошу извинить, не привык писать на форумах, да и голова в пол третьего ночи уже плохо работает...

Отредактированно OTV (16.08.2018 02:44:18)

Неактивен

 

#2 21.08.2018 22:25:40

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Выборка из двух таблиц

select shop_category_products.product_id
from shop_category_products join
(select product_id from shop_product_features where feature_value_id in (48,49) group by product_id having count(*)=2) t2
on shop_category_products.product_id = t2.product_id
where shop_category_products.category_id = 1353

Неактивен

 

#3 27.08.2018 14:12:41

OTV
Участник
Зарегистрирован: 16.08.2018
Сообщений: 2

Re: Выборка из двух таблиц

Спасибо

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson