选择具有相同ID但不同值的不同行
问题描述:
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.
答
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;