• Как сравнивать две произвольные таблицы?

    @Rustemmus
    Выбрать столбцы и строки, которые пересекаются в двух таблицах можно таким образом:

    SELECT column1, column2, column3, column4 FROM table1
    intersect
    SELECT column1, column2, column3, column4 FROM table2


    intersect выводит только те строки, которые есть в обеих таблицах.
    union выводит строки исключив повторяющиеся (distinct). Соответственно это тяжелая операция.
    union all выводит строки обеих таблиц без обработки.
    minus отнимает от строк верхнего запроса строки нижнего запроса. Выводит только те строки, которые есть в верхнем, и нет в нижнем запросе.

    Для всех упомянутых операций необходимо условие, чтобы выводимые столбцы были одинаковые.
    Если структура таблиц разная, только некоторые столбцы одинаковые а выводить нужно все столбцы, то нужно использовать Join. Пример join-а описал Oleg Agapov.
    Ответ написан
    Комментировать