объединить две таблицы sql



Автор User задал вопрос в разделе Другие языки и технологии

Как объединить две таблицы в SQL 2008? и получил лучший ответ

Ответ от Kelavric kelavric[гуру]
Запрос, который вытаскивает из двух таблиц имена со свежайшими адресами, имеет вид:
SELECT
COALESCE(T1.[Имя] , T2.[Имя] ) as [Имя] ,
COALESCE(T1.[Фамилия] , T2.[Фамилия] ) as [Фамилия] ,
COALESCE(T2.[Адрес проживания] , T1.[Адрес проживания] ) as [Адрес проживания]
FROM
[Таблица_1] T1
FULL JOIN [Таблица_2] T2 on T1.[Имя] = T2.[Имя] and T1.[Фамилия] = T2.[Фамилия]
Что делать с результатами этого запроса, решать Вам. Например, можно запихнуть их в таблицу Таблица_3:
INSERT INTO [Таблица_3] SELECT ...
Можно организовать представление:
CREATE VIEW [Таблица_3] AS SELECT ...
А можно и просто отдать результаты этого запроса клиенту.
Если же хочется обновить первую таблицу адресами из второй, можно поступить так:
UPDATE [Таблица_1]
SET [Адрес проживания] = T2.[Адрес проживания]
FROM [Таблица_1] T1
JOIN [Таблица_2] T2 on T1.[Имя] = T2.[Имя] and T1.[Фамилия] = T2.[Фамилия]
INSERT INTO [Таблица_1]
SELECT
T2.*
FROM
[Таблица_2] T2
LEFT JOIN [Таблица_1] T1 on T1.[Имя] = T2.[Имя] and T1.[Фамилия] = T2.[Фамилия]
WHERE T1.[Фамилия] is null
В случае, когда обновление требуется для второй таблицы, можно обойтись одной командой:
INSERT INTO [Таблица_2]
SELECT
T1.*
FROM
[Таблица_1] T1
LEFT JOIN [Таблица_2] T2 on T1.[Имя] = T2.[Имя] and T1.[Фамилия] = T2.[Фамилия]
WHERE T2.[Фамилия] is null

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как объединить две таблицы в SQL 2008?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*