选择查询条件

vsaztqbk  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(277)

我的表包含4列(id、val1、val2、val3)。有人知道如何选择val3相同而val1不同的行吗。
例如

row1: (id1, user1, matheos, cvn)
row2: (id2, user2, matheos, cvn)
row3: (id3, user3, Claudia, bnps)

然后我返回第1行和第2行。

5f0d552i

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
)
g9icjywg

g9icjywg2#

根据你的解释,你可以试试这个:

select distinct t1.* from mytable t1 
JOIN mytable t2 where t1.val3 = t2.val3 
and t1.val1 != t2.val1;

演示:sql fiddle

相关问题