CHill60
Цитата: (sic)
у меня есть 5 таблиц с одинаковыми именами столбцов, но разными записями,
могу ли я добавить записи из всех таблиц в 1 таблицу и отобразить ее?
Если у вас есть 5 таблиц с одинаковыми именами столбцов, но разными записями, то то, что у вас есть, - это очень плохой дизайн базы данных.
Пересмотрите свой дизайн базы данных.
Например: у вас могут быть такие таблицы, как
[Student]
,
[Teacher]
,
[Parent]
,
[CateringStaff]
и т.д.
Все эти таблицы будут иметь такие вещи, как [FirstName], [LastName], [DateOfBirth] и т. д. Все так же.
Лучший дизайн-это иметь таблицу под названием
[Человек] с такими столбцами, как [FirstName], [LastName], [DateOfBirth] и т. д. плюс дополнительная колонка
[PersonType]
который может ссылаться на другую таблицу
Create table [PersonType](Id int, PersonType nvarchar(125))
В этой последней таблице есть строка для "ученика", "учителя", "родителя", "поставщика провизии" и т. д.
Если вы хотите получить всех людей в вашей базе данных, это простой запрос с одной таблицей :
SELECT * FROM Person
Если вы хотите получить всех учителей это еще один простой запрос:
SELECT * FROM Person P
INNER JOIN PersonType PT on P.PersonType = PT.Id
WHERE PT.PersonType = 'Teacher'
и так далее.
Если вы действительно хотите сохранить свои пять таблиц (пожалуйста, не делайте этого таким образом), то у вас нет другого выхода, кроме как использовать UNION. Однако вы
не придется использовать временную таблицу, и вам абсолютно не нужно использовать слияние.
UNION ALL
не удаляет повторяющиеся строки, но
UNION
будет. Так что все, что вам нужно, это
SELECT * FROM Table1
UNION
SELECT * FROM Table2
UNION
SELECT * FROM Table3
UNION
SELECT * FROM Table4
UNION
SELECT * FROM Table5
(С оговоркой, что вы никогда не должны использовать SELECT * в подобных ситуациях, перечислите нужные столбцы явно)
CHill60
Пять таблиц с точно такими же столбцами - это не очень хороший дизайн (см. Основы нормализации базы данных[^Это особенно верно, поскольку вы пытаетесь получить информацию из всех 5 таблиц в один набор записей, что означает, что эти строки принадлежат одному и тому же набору информации, а это означает, что все они должны быть в одной таблице.
Последний метод, о котором я упоминал (союз), не имеет в себе ничего негативного ЕСЛИ у вас есть те 5 таблиц, которые идентичны. Это не повлияет на базу данных. Если вы не измените свою базу данных, то именно этот запрос вам и нужно будет использовать.
Кстати, если вы хотите создать единую таблицу, вы используете этот запрос объединения, чтобы сделать это с помощью INSERT