объединить несколько таблиц с разными столбцами в одну таблицу - PullRequest
0 голосов
/ 14 января 2020

У меня есть 4 таблицы, каждая из которых содержит разные данные и разные столбцы (название заголовка). Я хочу создать новую таблицу, которая содержит все данные и все столбцы в одной новой таблицы. Примечание: я пытаюсь выделить записи в один результат. нет связи между любыми из таблиц. каждая таблица собирала данные откуда-то еще. Я пытаюсь объединить эти таблицы в 1, чтобы обучить модели машинного обучения. это помогает? Дайте мне знать, если вам нужна дополнительная информация. Спасибо за любую помощь

TABLE [db_ddladmin].[PS_sec_1](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [session_id] [varchar](90) NULL,
    [Age] [varchar](750) NULL,
    [Religious] [varchar](50) NULL,
    [Marital] [varchar](50) NULL,
    [Sex] [varchar](50) NULL,
    [Ethnicity] [varchar](50) NULL,
    [Country] [varchar](50) NULL,
    [Education] [varchar](50) NULL,
    [Zipcode] [varchar](50) NULL,
    [Fist_name] [varchar](50) NULL,
    [flag] [char](10) NULL,
    [timdat] [datetime] NULL
) ON [PRIMARY]


TABLE [db_ddladmin].[PS_sec_2](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [session_id] [varchar](90) NULL,
    [Height] [varchar](750) NULL,
    [Weight] [varchar](50) NULL,
    [Body_type] [varchar](50) NULL,
    [eye] [int] NULL,
    [ear] [int] NULL,
    [nose] [int] NULL,
    [lip] [int] NULL,
    [toung] [int] NULL,
    [nippel] [int] NULL,
    [belly] [int] NULL,
    [clit] [int] NULL,
    [face] [int] NULL,
    [neck] [int] NULL,
    [shoulder] [int] NULL,
    [chest] [int] NULL,
    [back] [int] NULL,
    [ribs] [int] NULL,
    [stomach] [int] NULL,
    [arms] [int] NULL,
    [hand] [int] NULL,
    [thigh] [int] NULL,
    [calf] [int] NULL,
    [foot] [int] NULL,
    [flag] [char](10) NULL,
    [timdat] [datetime] NULL
) ON [PRIMARY]

Ответы [ 3 ]

2 голосов
/ 14 января 2020

давайте предположим, что ваши существующие таблицы - это table1, table2, table3 и table4, а также предположим, что новая таблица называется tablenew,

SELECT * 
INTO   tablenew 
FROM   (SELECT col1, 
               col2, 
               col3 
        FROM   table1 
        UNION ALL 
        SELECT col1, 
               col2, 
               col3 
        FROM   table2 
        UNION ALL 
        SELECT col1, 
               col2, 
               NULL AS Col3 
        FROM   table3) 
1 голос
/ 14 января 2020

Вы можете использовать CROSS JOIN , но это будет крушение ... Надеюсь, это то, что вы хотите.

SELECT * from [db_ddladmin].[PS_sec_1]
CROSS JOIN [db_ddladmin].[PS_sec_2];
0 голосов
/ 14 января 2020

В целях обсуждения, давайте предположим, что есть две таблицы, tableA и tableB. Я создал образец данных, чтобы проиллюстрировать решение:

Детали таблицы:

CREATE TABLE #tableA (ID Int, Name Varchar(10))
INSERT INTO #tableA VALUES (1,'John'),(2,'James')

Детали таблицы B:

CREATE TABLE #tableB (City Varchar(10), Country Varchar(10))
INSERT INTO #tableB VALUES ('Paris','France'),('NY','USA')

Заявление об объединении:

select ID,Name,NULL as City,NULL as Country from #tableA
UNION ALL
select NULL as ID,NULL as Name,City,Country from #tableB

Заявление об объединении должно дать искомый результат, но для его получения потребуется некоторая ручная работа. Надеюсь, это поможет.

...