выберите из MySQL с различными значениями ключа

0

Я хочу написать запрос, который даст мне продукт с определенным значением ключа

tbl_product

  product_id  field_id    value
      1          1         100
      1          2         200

я хочу найти все продукты, которые имеют (field_id = 1 и value = 100) и (field_id = 2 и value = 200)

Теги:

2 ответа

0
Лучший ответ

Вы можете использовать, where, group by и having:

select product_id
from t
where (field_id = 1 and value = 100) or (field_id = 2 and value = 200 )
group by product_id
having count(*) = 2;

Если дубликаты разрешены, то вы хотите count(distinct field_id) = 2.

0

Я думаю, вам кажется, что вы хотите:

select t.*
from table t
where exists (select 1 
              from table 
              where product_id = t.product_id and (field_id = 1 and value = 100)  
             ) and
      exists (select 1 
              from table 
              where product_id = t.product_id and (field_id = 2 and value = 200)  
             );

Ещё вопросы

Сообщество Overcoder
Наверх
Меню