ID| uid | val1 | val2
---------------------
1 | 80 | -1 | -1
2 | 81 | 45 | -1
3 | 82 | 99 | -1
4 | 81 | -45 | -1
5 | 82 | 99 | 50
6 | 83 | 55 | 70
7 | 83 | -55 | -70
8 | 81 | 41 | -1
9 | 83 | -1 | 80
不要选择以下内容: - 除了-1 - 如果有相同的正负值(带减号 - 例如在此表中为45,负值为-45)等等
你好我有这张桌子。如果我想得到这个,请问如何编写查询?
[1]
uid=81
val1=41
val2=
[2]
uid=82
val1=99
val2=50
[3]
uid=83
val1=
val2=80
答案 0 :(得分:0)
这样的事情能做你想做的吗?
select t.*
from table t
where val1 <> -1 and val2 <> -1 and
not exists (select 1
from table t2
where (t.val1 = -1 or t2.val1 = - t.val1) and
(t.val2 = -1 or t2.val2 = - t.val2)
);
我认为密钥是not exists
来过滤掉负配对行。