Как объединить две таблицы SQL-сервера на основе условия? - PullRequest
0 голосов
/ 30 сентября 2019

То, что я пытаюсь сделать, похоже на Join, но я хочу, чтобы данные из таблицы фактически объединялись с данными из другой.

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

Первая таблица dbo.Категории с такими столбцами, как [Id], [Name_Good].

Вторая таблица dbo.Categories_Title , содержащая такие столбцы, как [Id], [Name], [Title_OK].

Я хотел бы объединить две таблицы on Categories.[Name_Good] = Categories_Title.[Name].

, поэтому dbo.Categories также будет иметь столбец [Title_OK] из другой таблицы, а также правильные значения, соответствующие условию, что.

Результирующий dbo.CategoriesПоэтому таблица должна содержать [Id], [Name_Good,[Title_OK].

INSERT Categories (Title_OK)
SELECT Title_Ok
FROM Categories_Title
WHERE Categories.Name_Good=Categories_Title.Name

Я пытался использовать этот код, но получаю следующую ошибку:

Неверное имя столбца 'Title_OK'

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

Вам необходимо сначала изменить таблицу Categories и добавить столбец Title_Ok:

ALTER TABLE Categories ADD Title_Ok VARCHAR(MAX);

После этого вам следует выполнить обновление здесь, а невставить:

UPDATE c
SET c.Title_Ok = ct.Title_Ok
FROM Categories c
INNER JOIN Categories_Title ct
    ON c.Name_Good = ct.Name;
0 голосов
/ 30 сентября 2019

Во-первых, добавить столбец Title_Ok в таблицу категорий

ALTER TABLE Categories ADD Title_Ok VARCHAR(MAX);

Во-вторых, добавить записи в таблицу категорий из заголовка Categories_Title

INSERT INTO Categories ( [Id], [Name_Good], [Title_OK])
SELECT  [Id], [Name], [Title_OK] FROM  Categories_Title
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...