重复多列的MySQL结果不同

时间:2013-09-06 16:08:29

标签: mysql sql join logic

我有桌子:

env | app | prop_file | prop | value
qa1   e     a           a      testa
qa1   g     b           a      testa
qa1   s     c           a      testb
qa2   s     a           b      testc
qa2   s     d           b      testc
qa3   a     a           b      testc
qa4   z     g           c      testb
qa4   x     a           c      testb

我需要以下结果:

env | prop_file | prop | value
qa1   a           a      testa
qa1   c           a      testb

我将尝试总结,我只需要在给定“prop”的“值”在特定“env”内不匹配的结果。如果“prop_file”或其他列不匹配,则无关紧要。同样在结果中我需要不匹配的列的prop文件。实际上,我也可以接受以下结果:

env | prop_file | prop | value
qa1   a           a      testa
qa1   b           a      testa
qa1   c           a      testb

我已经尝试了一堆连接和组并且计数但似乎无法确定exect语法!让我疯了如果需要,我可以在源表中提供更多示例。

1 个答案:

答案 0 :(得分:0)

以下是您遇到问题的env / prop列表:

select env, prop
from t
group by env, prop
having count(distinct value) > 1;

这会连接回原始表以获取有问题的记录:

select t.*
from t join
     (select env, prop
      from t
      group by env, prop
      having count(distinct value) > 1
     ) tep
     on t.env = tep.env and t.prop = tep.prop;