我的表包含4列(id、val1、val2、val3)。有人知道如何选择val3相同而val1不同的行吗。例如
row1: (id1, user1, matheos, cvn) row2: (id2, user2, matheos, cvn) row3: (id3, user3, Claudia, bnps)
然后我返回第1行和第2行。
5f0d552i1#
您的解释并不完全清楚,但以下查询将根据您指定的条件查找匹配的行:
select a.*, b.* from my_table a join my_table b on b.val3 = a.val3 and b.val2 <> a.val2 and b.id < a.id
为了分别生成行,还可以执行以下操作:
select * from my_table a where exists ( select null from my_table b where b.val3 = a.val3 and b.val2 <> a.val2 )
g9icjywg2#
根据你的解释,你可以试试这个:
select distinct t1.* from mytable t1 JOIN mytable t2 where t1.val3 = t2.val3 and t1.val1 != t2.val1;
演示:sql fiddle
2条答案
按热度按时间5f0d552i1#
您的解释并不完全清楚,但以下查询将根据您指定的条件查找匹配的行:
为了分别生成行,还可以执行以下操作:
g9icjywg2#
根据你的解释,你可以试试这个:
演示:sql fiddle