0

我有一个如下所示的 mysql 表:

ID  GROUP   FILTER1     FILTER2
--  --      --------    --------
1   27      22337755    NULL
2   28      22337755    NULL
3   22      22337755    22337744
4   4       22337635    22337635
5   4       22337755    22337755
6   4       22337635    22337744

我想过滤掉任何与过滤器匹配的 ID。我的第一遍看起来像:

SELECT ID FROM mytable
WHERE
(FILTER1 <> '22337755')
AND
((FILTER2 <> '22337755') OR (FILTER2 IS NULL))

此查询已关闭,但该查询未考虑 GROUP 列,并且由于最后一行 #6 在任一列中都不包含 22337755,因此即使 #5 应将其从列表中删除,它也会返回。

什么是删除在组中的任何行上被 FILTER 命中的行的好方法?

4

1 回答 1

1

你有什么加:

AND [GROUP] NOT IN 
(SELECT [GROUP] FROM mytable WHERE FILTER1 = '22337755' OR FILTER2 = '22337755') 
于 2013-10-31T22:29:17.207 回答