我有两张桌子
TABLE1 TABLE2
COLUMN1 COLUMN2 COLUMN1 COLUMN2
John 56 56 A
Bob 45 45 B
Eva 68 68 C
我需要在一个表中添加列,事实上我将使用函数join从其他表插入新列值
TABLE1
COLUMN1 COLUMN2 COLUMN3
John 56 A
Bob 45 B
Eva 68 C
ALTER TABLE [dbo].[Table1]
ADD Column3 nvarchar(255);
INSERT INTO [dbo].[Table1] (column3)
SELECT table2.column2
from [dbo].[Table2] left join [dbo].[table1]
on table1.column2 = table2.column1
但我得到了
TABLE1
COLUMN1 COLUMN2 COLUMN3
John 56 A
Bob 45 B
Eva 68 C
NULL NULL A
NULL NULL B
NULL NULL C
你能帮我修理插页吗?
答案 0 :(得分:5)
你真的需要更新表格设置栏3
UPDATE t1
SET column3 = t2.column2
FROM [dbo].[Table1] t1
JOIN [dbo].[table2] t2 ON t1.column2 = t2.column1
答案 1 :(得分:0)
你必须使用INNER JOIN:
INNER JOIN Table1 ON Table1.Column2 = Table1.Column1
答案 2 :(得分:0)
尝试撰写inner join
而不是left join
。
答案 3 :(得分:0)
在INSERT INTO中将JOIN从LEFT更改为INNER,并加入table1.column1而不是table1.column2
INSERT INTO [dbo].[Table1] (column3)
SELECT table2.column2
from [dbo].[Table2]
INNER JOIN [dbo].[table1]
on table1.column1 = table2.column1
答案 4 :(得分:0)
您要做的是UPDATE表。为简单起见,第一个表中的列是column1
等等,第二个col1
中的列等等。那么您只需要简单的update
语句。
UPDATE Table1 SET column3 = col2
WHERE column2 = col1