Архив рубрики «Oracle»
Сравнение двух таблиц с помощью SQL запроса
Перед вами поставлена не сложная на первый взгляд задача сравнить содержимое двух таблиц с помощью запросов SQL.
Решить ее можно двумя способами:
Способ номер 1:
Необходимо выполнить следующие два запроса:
SELECT * FROM tbl1
MINUS
SELECT * FROM tbl2;
SELECT * FROM tbl2
MINUS
SELECT * FROM tbl1;
Способ номер 2:
Способ номер 1 почти всегда будет работать только
в том случае, когда tbl1 и tbl2 включают одинаковое число строк. Но в tbl1 некоторые строки могут встречаться n раз, а в tbl2 – m раз. Чтобы разрешить эту ситуацию необходимо запустить такие два запроса:
SELECT tbl1.*,count(*)
FROM tbl1
GROUP BY clmn1,clmn2,...
MINUS
SELECT tbl2.*,count(*)
FROM tbl2
GROUP BY clmn1,clmn2,...
И
SELECT tbl2.*,count(*)
FROM tbl2
GROUP BY clmn1,clmn2,...
MINUS
SELECT tbl1.*,count(*)
FROM tbl1
GROUP BY clmn1,clmn2,...