如何根据条件合并两个SQL Server表?

问题描述 投票:0回答:1

我想做的事情有点像联接,但是我希望表中的数据实际上与另一个表中的数据合并。为了更清楚地说明这一点,我将深入解释该问题,就目前的形式而言,我的解释听起来很愚蠢。

第一个表是dbo.Categories,其中包含[Id],[Name_Good]之类的列。

第二个表是dbo.Categories_Title,其中包含[Id],[Name],[Title_OK]之类的列。

我想做的是合并类别中的两个表。[Name_Good] = Categories_Title。[名称],因此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'

sql-server
1个回答
0
投票

您首先需要更改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;
© www.soinside.com 2019 - 2024. All rights reserved.