2012-02-16 2 views
1

Я пытался коснуться как:Sql Сравнение где значение Table1 не найдено в Table2 и показывает результат, как Table3

Select Items 
From Table1 
Where Not Exists (
    Select Items 
    From Table2 
    Where Table2.Items = Table1.Items) As Table3.Items 

но почему-то не работает так, может anywone сказать мне, как я могу achive это?

+0

Что вы подразумеваете под 'дающим результат в Table3'? Должен ли результат быть вставлен в таблицу3? –

+0

Вы имеете в виду, что SQL не дает ожидаемого результата или код дает вам ошибку или работает без ожидаемых результатов. Не могли бы вы вставить соответствующий код вокруг своего SQL здесь? – ImranIlahi

+0

Таблица 3 на самом деле не является другой таблицей, созданной ранее. Его просто покажут результат запроса в виде таблицы3. –

ответ

2

Если вы хотите создать новую таблицу с результатами этого, вы можете попробовать это:

Select Items 
Into Table3 
From Table1 
Where Not Exists (Select Items From Table2 Where Table2.Items = Table1.Items) 
+0

приятно, но создает ли этот стол временный или постоянный? –

+0

@ BerkerYüceer - Это создает новую постоянную таблицу. Если вы просто хотите использовать его в другом запросе, но не хотите его создавать в виде таблицы, вы можете использовать его в качестве производной таблицы: 'SELECT .. FROM (SELECT Itmes FROM Table1 WHERE Not Exives .....) AS Table3 – Lamak

+0

Да, я пробовал это там, но, похоже, я ошибаюсь при использовании SELECT * FROM (....) AS TABLE3. теперь он работал спасибо. –

1

Если вы ищете строки в t3, которые существуют в t1, но не в t2, попробуйте:

select t3.Items 
from table3 t3 
where exists 
     (
     select * 
     from table1 t1 
     where t1.Items = t3.items 
     ) 
     and not exists 
     (
     select * 
     from table2 t2 
     where t2.Items = t3.items 
     ) 
+0

Я думаю, вы меня неправильно поняли. я использую Таблицу 3 только для того, чтобы показать результаты сравнения между Таблицей 1 и Таблицей 2, но это еще один полезный ответ, который для меня ценен так +1. –

1

Другим решением является except:

select * 
from 
(
    Select Items 
    From Table1 
    except 
    Select Items 
    From Table2 
) as Table3 
+0

nice Мне понравилось это –