2013-10-31 45 views
0

我有一個MySQL表,看起來像下面2 columns.grouping過濾的好方法:什麼是使用在第3場

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 

我想篩選出匹配過濾器的任何標識。我第一遍看起來像:

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

該查詢接近,但查詢不考慮GROUP列,並自最後一行#6沒有在任一列中包含22337755所以它會變得返回儘管#5應該把它從列表中刪除。

什麼是刪除在組中的任何行上有FILTER命中的行的好方法?

回答

1

你有加:

AND [GROUP] NOT IN 
(SELECT [GROUP] FROM mytable WHERE FILTER1 = '22337755' OR FILTER2 = '22337755')