2017-10-03 11 views
0

グループ内のエントリの1つが条件と一致する場合、グループに属するすべての行を削除します(グループ句内)。 現在、私が実際に実行しているクエリは、非常に遅いタプルマッチングの一種です。グループのすべてのエントリが特定の条件を満たしている場合に削除します

SELECT * 
FROM Table 
WHERE (column1, column2, column3) not in 
     ((SELECT column1, column2, column3 
     FROM Table 
     WHERE column4 like 'abcd')) 
+1

。または、より良いことに、LEFT JOINを実行してください。 – jarlh

+0

あなたはクエリを提供することができます、それは非常に役に立つでしょう..ありがとう。 – aman

答えて

1

あなたは、各グループの「除外する行」の数をカウントし、HAVING句を使用して、それらを含むグループを除外、などの可能性:NOTではなくEXISTSいます

SELECT whatever, SUM(criterion_for_a_single_line_to_be_excluded) as number_of_lines_to_exclude 
    FROM … 
GROUP BY whatever 
    HAVING number_of_lines_to_exclude = 0 
関連する問題