@kononov971

Выборка из двух таблиц в SQL?

Даны 2 таблицы table1 и table2, поля в них совпадают. Как получить выборку
1. строк, которые присутствуют и в table1, и в table2
2. строк, которые уникальны для каждой таблицы и не встречаются в другой?

Пытался использовать конструкцию NOT IN, но не помогло.

SELECT * FROM table1
   WHERE * NOT IN (SELECT * FROM table2);
  • Вопрос задан
  • 536 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alexalexes
Что-то про поля нет конкретики, в первом случае будет так.
select t1.*, t2.*
 from table1 t1
  join table2 t2 on t2.field1 = t1.field1
                       and t2.field2 = t1.field2
                       and ... -- сравниваем все поля

Во втором нужно вычитать:
select t1.* from table1 t1
UNION
select t2.* from table2 t2
MINUS
select t1.*
 from table1 t1
  join table2 t2 on t2.field1 = t1.field1
                       and t2.field2 = t1.field2
                       and ... -- сравниваем все поля
Ответ написан
Комментировать
@ponaehal
по первому вопросу может сработать (В зависимости от используемой БД или стандарта SQL):

select t1.* from table1 t1
INTERSECT
select t2.* from table2 t2
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы