我有两个表,Users
和Company
。
我想从一个传输值Active
列在Users
表中的Active
列Company
表,其中CompanyID
在比赛中ID
。
这是一个示例表。它有成千上万行的,还有在1间之间的关系是1Company
和Users
:
Users:
CompanyID Active
458 1
685 1
58 0
Company:
ID Active
5 Null
3 Null
58 Null
685 Null
最终Company
表应该看起来像这样,其中的Null
已被Users
表中的值替换。
Company:
ID Active
5 Null
3 Null
58 0
685 1
您可以简单地执行一个在两个表之间UPDATE
使用a的操作JOIN
,如下所示:
UPDATE c
SET Active = u.Active
FROM Company c
INNER JOIN Users u ON u.CompanyId = c.ID
完整的工作示例代码:
CREATE TABLE #Users
(
CompanyId INT ,
Active BIT
)
INSERT INTO #Users
( CompanyId, Active )
VALUES ( 458, 1 ),
( 685, 1 ),
( 58, 0 )
CREATE TABLE #Company
(
ID INT ,
Active BIT
)
INSERT INTO #Company
( ID, Active )
VALUES ( 5, NULL ),
( 3, NULL ),
( 58, NULL ),
( 685, NULL )
UPDATE c
SET Active = u.Active
FROM #Company c
INNER JOIN #Users u ON u.CompanyId = c.ID
SELECT * FROM #Company
DROP TABLE #Users
DROP TABLE #Company
您会注意到UPDATE
示例代码中的语句使用别名c
并u
引用了两个表。
警告:
正如评论指出,这是假定你永远只能之间有1对1的关系Company
和Users
。如果分配给同一公司的用户不止一个,则需要过滤Users
来选择您要使用的用户,否则您可能会得到意想不到的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句