Я хотел бы получить запрос (SQL Server 2012): Обновить данные из одной таблицы в другую, где нет общей связующей записи (довольно уверен, что я не может просто присоединиться, а затем обновить). Единственное сходство в том, что таблицы имеют одинаковую структуруОбновить данные из одной таблицы в другую без общего идентификатора
, чтобы сохранить его простым (передача 100+ пунктов)
- Таблица 1а: КЛЮЧ, TagName < - Где a.TagName как «Tag1»
- Таблица 1b: DS_KEY, Марка, модель < - источник данных Update
- Таблица 2a: KEY, TagName < - Где b.TagName как 'tag2'
- Таблица 2b: DS_KEY, Марка, Модель < - - назначение данных обновления
так,
- Таблица 1а: 123, Вкладка1
- Таблица 1b: 123, Тест1, Model1
- Таблица 2а: 456, Вкладка2
- Таблица 2b: 456, NULL, NULL
Что у меня есть:
--Query 1
SELECT KEY, TagName, DS_KEY, Make, Model
FROM Table1a
JOIN Table1b
ON Table1a.KEY = Table1b.DS_KEY
Where TagName = 'Tag1'
РЕЗУЛЬТАТ (123, Tag1, 123, Test1, Model1)
--Query 2
SELECT KEY, TagName, DS_KEY, Make, Model
FROM Table2a
JOIN Table2b
ON Table2a.KEY = Table2b.DS_KEY
Where TagName = 'Tag2'
РЕЗУЛЬТАТ (456, Tag2, 456, NULL, NULL)
Возвращает микс, который я хочу работать. Неполадка о том, как обновить Table2b с этого момента. Не могу присоединиться к ним (по крайней мере, я не вижу, как!). Может быть, UNION ALL? действительно надеюсь, что мне не нужно
Update Table2b
Set Table2b.Make =
(SELECT Make FROM Table1a
JOIN Table1b
ON Table1a.KEY = Table1b.DS_KEY)
FROM Table2a
JOIN Table2b
ON Table2a.KEY = Table2b.DS_KEY
Where Table2a.TagName = 'Tag2'
Как я уже сказал, у меня есть около 100 записей, чтобы установить, и это только кажется, что там должно быть проще. Заранее благодарю и, пожалуйста, извините любые синтаксические ошибки, поскольку я пытаюсь перефразировать вопрос, чтобы он был простым (и я устал!) :)
Вот образец для работы. Дайте мне знать, если это не работает, поскольку я никогда не использовал SQL Fiddle! http://sqlfiddle.com/#!6/db2fa/4 –
Может кто-нибудь дать некоторое представление здесь, пожалуйста? –