Здесь вам поможет пункт UNION
. Он объединяет два или более набора результатов в один.
Попробуйте:
SELECT uid, ABC, OtherStuff
FROM Table1
UNION
SELECT uid, DEF, OtherStuff
FROM Table2
UNION
SELECT uid, GHI, OtherStuff
FROM Table3
ORDER BY uid
Существует вариация на эту тему с оператором UNION ALL
. UNION
явно удалит дубликаты строк, а UNION ALL
сохранит их.
Это имеет последствия, выходящие за рамки простого различия в строках: для удаления дубликатов оператор UNION
должен отсортировать окончательный набор результатов. Это накладные расходы, оператор UNION ALL
не испытывает. Более того, явная операция сортировки может привести к тому, что результирующий набор, собранный UNION
, будет отличаться в порядке сортировки по сравнению с UNION ALL
. Я предлагаю вам использовать явный оператор ORDER BY
после сбора набора результатов, чтобы убедиться, что ваш порядок сортировки соответствует вашему.
Обратите также внимание, что количество столбцов должно совпадать в наборе результатов, равном UNION
ed. Из ОП не ясно, как две таблицы различаются по количеству столбцов, которые они хранят, и поэтому я не решаюсь делать UNION
между двумя SELECT *
операторами.