2013-10-10 4 views
0

У меня есть проблема, чтобы правильно сделать эту операцию в SQL:Если EXISTS (SELECT 1 FROM # tempTable1) AND NOT EXISTS (SELECT 1 FROM # tempTable2 где ...)

If exists(SELECT 1 FROM #tempTable1 table1) AND NOT EXISTS (SELECT 1 FROM #tempTable2 table2 where table2.id = table1.id) 
BEGIN 
    SELECT...... 
END 
ELSE..... 

Я стараюсь это слишком без успеха:

IF EXISTS (SELECT 1 FROM #tempTable1) 
BEGIN 
    SELECT * FROM #tempTable1 table1 
    IF NOT EXISTS (SELECT 1 FROM #tempTable2 where id = table1.id) 
    BEGIN 
    ..... 
    END 
END 
ELSE.... 

Не могли бы вы рассказать мне, есть ли хороший способ сделать это?

+2

И какова должна быть логика за этим в ваших словах? –

ответ

0

Возможно, что-то вроде этого является то, что вы хотите:

If EXISTS (SELECT 1 FROM #tempTable1 table1 
      WHERE NOT EXISTS (SELECT 1 FROM #tempTable2 table2 
           WHERE table2.id = table1.id)) 

BEGIN 
.. 
END 

Возвращает истину, если есть строки в Table1, которые не существуют в Table2

SQLFiddle DEMO

Смежные вопросы