选择具有相同ID但不同值的不同行

问题描述:

enter image description here

I have a table above, I want to get the record_id(3 in this case) having meta_name=discount_percent and meta_value=56 combined with another condition meta_name=discount_multiplier and meta_value=30. I tried using HAVING clause with GROUP BY but it didn't work. Would appreciate if someone can help.

p>

I 有一个上面的表,我想获得record_id(在这种情况下为3)meta_name = discount_percent和meta_value = 56与另一个条件meta_name = discount_multiplier和meta_value = 30相结合。 我尝试将 HAVING strong>子句与 GROUP BY strong>一起使用,但它不起作用。 如果有人可以提供帮助,我们将不胜感激。 p> div>

I believe you want to get the records with your two conditions group them by the ID and check if the count of rows in the group is 2, so that both conditions applied to that ID (assuming that the pair of record_id and meta_name is unique).

SELECT record_id
       FROM elbat
       WHERE meta_name = 'discount_percent'
             AND meta_value = '56'
              OR meta_name = 'discount_multiplier'
                 AND meta_value = '30'
       GROUP BY record_id
       HAVING count(*) = 2;