@maratmd

Как объединить разные таблицы с разными столбцами?

Имеются две таблицы sotrudniki и transport. В этих таблицах разное количество столбцов и строк.
Хотел бы на выходе запроса получить список из обеих таблиц с одним каким то заголовком. В таблице sotrudniki нужна колонка name, а в таблице transport колонка nazvanie
66bc9c048f7ad638017952.jpeg
Также нужно сделать сортировку от A до Я. Чтобы сначала шли только отсортированные от А до Я сотрудники, а потом также отсортированные транспорт.
Единственное, что я смог сделать это использовать UNION
SELECT name
FROM sotrudniki
UNION
SELECT nazvanie
FROM transport
ORDER BY name ASC


на выходе я получаю список с заголовком name и сортировкой от А до Я (сортируются все данные) а хотелось бы сортировку сначала таблицы 1 а потом из второй.
  • Вопрос задан
  • 91 просмотр
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега MySQL
Задача, конечно, максимально странная, но решается она так:
select zagolovok from (
    select 1 as sort, name as zagolovok from sotrudniki
    union
    select 2 as sort, nazvanie as zagolovok from transport
    order by sort, zagolovok
) as tmp
Ответ написан
@Akina
Сетевой и системный админ, SQL-программист.
(SELECT DISTINCT name AS zagolovok FROM sotrudniki ORDER BY 1 LIMIT 2147483647)
UNION ALL
(SELECT DISTINCT nazvanie FROM transport ORDER BY 1 LIMIT 2147483647)


Если поля name/nazvaine объявлены как уникальные - убрать DISTINCT.

fiddle
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы