douhang1913 2019-01-05 05:03
浏览 162
已采纳

选择具有相同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.

  • 写回答

1条回答 默认 最新

  • doukan3504 2019-01-05 05:12
    关注

    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;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?