Помогите с запростом Mysql

98
23 марта 2022, 09:50

делаю фильтры, У МЕНЯ ТАКОЙ запрос,

SELECT `product`.* 
FROM `product` 
LEFT JOIN `item2cat` ON `product`.`id` = `item2cat`.`product_id` 
LEFT JOIN `category` ON `item2cat`.`category_id` = `category`.`id` 
LEFT JOIN `property_value_product` ON `product`.`id` = `property_value_product`.`idProduct` 
WHERE (`product`.`status`=1) 
  AND (`category`.`id` IN ('4', '6', '7', '8', '9', '10', '11', '5', '12', '13', '14', '15', '16', '17', '18', '50', 1)) 
  AND (`property_value_product`.`idValue`=2) 
  AND (`property_value_product`.`idValue`=34)

по идее должен выбирать товары у которых в таблице property_value_product записаны их айди в поле idProduct и в поле idValue записано 2 и 34
то есть у одного продукта есть 2 записи к примеру 100 2 и 100 34 причем работает нормально только если убрать AND (property_value_product.idValue=34) тогда ищет все у которых idValue=2 а если надо чтоб у товара было и idValue=2 и idValue=34 (то есть 2 записи такие есть в таблице) он не ищет, что не так делаю, подскажите, плиз.

Answer 1

Проверьте:

SELECT `product`.* 
FROM `product` 
INNER JOIN `item2cat` ON `product`.`id` = `item2cat`.`product_id` 
INNER JOIN `category` ON `item2cat`.`category_id` = `category`.`id` 
WHERE `product`.`status` = 1
  AND `category`.`id` IN ('4', '6', '7', '8', '9', '10', '11', '5', '12', '13', '14', '15', '16', '17', '18', '50', 1)
  AND EXISTS ( SELECT 1
               FROM `property_value_product`
               WHERE `product`.`id` = `property_value_product`.`idProduct`
                 AND `idValue` = 2 ) 
  AND EXISTS ( SELECT 1
               FROM `property_value_product`
               WHERE `product`.`id` = `property_value_product`.`idProduct`
                 AND `idValue` = 34 ) 
READ ALSO
Как получить данные из manytimany таблицы?

Как получить данные из manytimany таблицы?

У меня есть два класса Child и GuardianВ классе Guardian есть поле:

90
Не грузятся данные из БД H2 с помощью Spring JPA

Не грузятся данные из БД H2 с помощью Spring JPA

Пробую выгрузить все данные из БД H2 с помощью Spring JPA , после перехода по ссылке http://localhost:8080/greeting на выходе получаются пустые значенияКак...

90
Показать все обьекты из файла через swing

Показать все обьекты из файла через swing

Я пытаюсь сделать обработку файла с помощью swingТо есть показать весь файл, удалить строку по фамилии, найти строку с помощью фамилии, записать...

84
Сортировка слов по количеству символов от большего к меньшему

Сортировка слов по количеству символов от большего к меньшему

Суть задачи такова, что есть какой-то список слов к примеру: "Hi" + "Group" + "Java" + "stacks"И в исходном варианте он должен выглядеть примерно вот так:...

143