выберите из MySQL с различными значениями ключа - PullRequest
0 голосов
/ 18 мая 2018

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

tbl_product

  product_id  field_id    value
      1          1         100
      1          2         200

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

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Кажется, вы хотите:

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)  
             );
0 голосов
/ 18 мая 2018

Вы можете использовать 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...