Fair enough, but I can't reproduce it. The production data counts differ between 104,675 rows and 93,700 rows, whereas this sample data does not. SET NOCOUNT ON;DECLARE @Table1 TABLE ([ID] INT NOT NULL)INSERT @Table1 (ID)SELECT TOP 2000 NumberFROM T.dbo.TallyNumbers -- 1 through 8000DECLARE @Table2 TABLE ([ID] INT NOT NULL,[Type] CHAR(1) NOT NULL,[Code] CHAR(1) NOT NULL)INSERT @Table2 ( ID, Type, Code)SELECT Number, [Type] = 'X', [Code] = '' FROM T.dbo.TallyNumbersWHERE Number BETWEEN 150 AND 800UPDATE @Table2SET [Code] = 'A'WHERE ID BETWEEN 150 AND 250UPDATE @Table2SET [Code] = 'B'WHERE ID BETWEEN 250 AND 350 UPDATE @Table2SET [Code] = 'C'WHERE ID BETWEEN 350 AND 450UPDATE @Table2SET [Code] = 'D'WHERE ID BETWEEN 450 AND 550UPDATE @Table2SET [Code] = 'E'WHERE ID BETWEEN 550 AND 800SET NOCOUNT OFF;SELECT DISTINCT a.IDFROM @Table1 a INNER JOIN @Table2 b ON a.ID = b.IDWHERE b.Type = 'X'AND b.Code NOT IN ('A','B','C')SELECT DISTINCT a.IDFROM @Table1 a INNER JOIN @Table2 b ON a.ID = b.IDWHERE b.Type = 'X' AND NOT EXISTS (SELECT IDFROM @Table2WHERE Code IN ('A','B','C')AND Code = b.Code)SELECT DISTINCT a.IDFROM @Table1 a INNER JOIN @Table2 b ON a.ID = b.IDWHERE b.Type = 'X' AND NOT EXISTS (SELECT IDFROM @Table2WHERE Code IN ('A','B','C')AND ID = b.ID)