Показать 2 таблицы в 1 сетке - PullRequest
0 голосов
/ 26 марта 2019

У меня есть 2 таблицы (Таблица1 и Таблица2).

Table1 & Table2 имеют одинаковые имена столбцов, но Table2 имеет несколько дополнительных столбцов, чем Table1.

Имена столбцов следующие:

  • Таблица1 [Имя, Фамилия, Возраст, Пол, Рост]
  • Таблица2 [Имя, Фамилия, Возраст, Пол, Дата рождения, Происхождение]

Я пытаюсь получить данные из обеих таблиц в 1 сетку.

Я пытался использовать UNION ALL, но он выдает ошибку, потому что столбцы не совпадают.

Можно ли объединить все эти столбцы в один вид сетки и соответственно отобразить данные?

Например: имя, фамилия, возраст, пол, рост, дата рождения, происхождение

Если так, то как будет выглядеть мой sql-запрос?

PS: у меня более 70 столбцов в каждой таблице, поэтому индивидуальный выбор не сработает

Ответы [ 3 ]

1 голос
/ 26 марта 2019

Просто поместите нулевые значения в отсутствующие столбцы и используйте UNION ALL

select name, surname, age, gender, height, null, null from table1
union all
select name, surname, age, gender, null, dateofbirth, origin from table2

Как уже упоминалось @TheImpaler, нет способа выбрать столбцы вручную.

0 голосов
/ 26 марта 2019

Пожалуйста, попробуйте это.

SELECT 
    Name, Surname, Age, Gender, Height,NULL AS DateOfBirth,NULL AS  Origin 
FROM 
    table1 

UNION ALL

SELECT 
    Name, Surname, Age, Gender, NULL AS Height, DateOfBirth, Origin
FROM 
    table2 
0 голосов
/ 26 марта 2019

Вы можете использовать функцию ROW_NUMBER

SELECT t1.Column1, t1.Column2, t2.Column3, t2.Column4
FROM (
   SELECT Column1, Column2,
          ROW_NUMBER() OVER (ORDER BY Column1) AS rn
   FROM Table1) AS t1
FULL OUTER JOIN  (
   SELECT Column3, Column4,
          ROW_NUMBER() OVER (ORDER BY Column3) AS rn
   FROM Table2) AS t2
ON t1.rn = t2.rn  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...