我想做的事情有点像联接,但是我希望表中的数据实际上与另一个表中的数据合并。为了更清楚地说明这一点,我将深入解释该问题,就目前的形式而言,我的解释听起来很愚蠢。
第一个表是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'
您首先需要更改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;