根据Id匹配(SQL)将表2中的列添加到表1中的列
我有一个存储过程,在执行某些计算之后,我选择要在UI上显示的临时表的列 下面是该存储过程的结尾部分根据Id匹配(SQL)将表2中的列添加到表1中的列,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我有一个存储过程,在执行某些计算之后,我选择要在UI上显示的临时表的列 下面是该存储过程的结尾部分 SELECT Id, Data, Value from #preopt 运行此select语句时返回的数据如下所示 Id | Data | Value 1 | xyz | 232 2 | abc | 222 3 | 3232 | www 现在我还有一张桌子。这不是一张临时桌子。它包含以下数据 从dbo.IdLists中选择Id、L
SELECT Id, Data, Value from #preopt
运行此select语句时返回的数据如下所示
Id | Data | Value
1 | xyz | 232
2 | abc | 222
3 | 3232 | www
现在我还有一张桌子。这不是一张临时桌子。它包含以下数据
从dbo.IdLists中选择Id、List1、List2
Id | List1 | List2
1 | g23 | h323
45 | g21 | h44
2 | g455 | g45
3 | g32 | h48
我希望存储过程中的最后一个表如下所示。在临时表#preopt中。基本上,它检查#preopt中的Id列,并与dbo.IDlists中的Id列进行比较。比较之后,它会选择List1和List2列,并将该id的相关值添加到temp表#preopt中
有人能告诉我这是否可行吗 这个查询应该可以做到这一点。使用IDLIST上联接的值更新临时表中的List1和List2
UPDATE p
SET p.List1 = l.List1, p.List2 = l.List2
FROM #preopt p
INNER JOIN dbo.IdLists l
ON p.Id = l.Id
看起来你想加入
SELECT po.Id, po.Data, po.Value, il. from #preopt po
INNER JOIN dbo.IdLists il on po.Id = il.Id
Sql Server还是MySql?所有Sql我猜,可能是Sql Server它看起来像你想要一个
JOIN
它是一个会话表(preopt)?Op想要结果中有4列。为什么你需要更新表中选择的2个值?让我用另一种方式来表达。临时表有5列,一列是ID,两列是data,两列是NULL。您需要更新2个空值,而不是4个值,因为2已经有数据。您不需要update
period。只需一个选择JOIN
就可以做任何你想做的事情,但是op中的问题是:在比较之后,它会选择List1和List2列,并将tat id的相关值添加到temp表中#preopt
非常接近,但是你需要修复idlist中的字段名
SELECT po.Id, po.Data, po.Value, il. from #preopt po
INNER JOIN dbo.IdLists il on po.Id = il.Id