справка по sql-запросу между двумя таблицами

#sql

#sql

Вопрос:

Таблица 1

 table1
row 1 
row 2
row 3
  

Таблица 2

 table2
row 1
  

Нужен запрос, который показывает только строки таблицы1, которых нет в таблице2

Результат

 result
row 2
row 3
  

Ответ №1:

Операторы SQL set — ваш друг:

 SELECT row FROM table1
EXCEPT
SELECT row FROM table2
  

Или вы можете использовать NOT IN :

 SELECT row
FROM table1
WHERE row NOT IN (SELECT row FROM table)
  

Предполагается, что в ваших таблицах есть один столбец с именем row и что столбцы одного типа. Однако вы должны быть в состоянии достаточно легко адаптировать их к вашим реальным таблицам.

Ответ №2:

 select table1.col1 from table1
where not exists 
   (select table2.col1 from table2 where table1.col1 = table2.col1)