1. likvidator - 26 Января, 2017 - 21:04:21 - перейти к сообщению
Есть 2 абсолютно одинаковые таблицы по структуре (id, key1, key2, key3..), но с разными данными. Необходимо найти уникальные записи в двух таблицах. Уникальных ключей нет, т. Е. id записи из первой таблицы во второй может принадлежать другой записи из второй. Сравнение идёт по столбцам key1, key2, key3... Грубо говоря нужно достать записи где table1.key1 != table2. key1 AND table1.key2 != table2. key2, и т. д. Не могу найти оптимальный вариант, подскажите.
2. Мелкий - 26 Января, 2017 - 21:34:42 - перейти к сообщению
likvidator пишет:
нужно достать записи где table1.key1 != table2. key1 AND table1.key2 != table2. key2
Согласно базовой булевой логике этому условию будут подходить чуть менее чем всё декартово произведение таблиц.
likvidator пишет:
Необходимо найти уникальные записи в двух таблицах.
Т.е. строки, для которых НЕТ парной в другой таблице?
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT * FROM table1 FULL OUTER JOIN table2 USING(key1, key2, key3) WHERE table1.id IS NULL OR table2.id IS NULL