我不是一个代码人,我试图在mssql中每5分钟运行一次查询。查询问题从1个表中选择结果到另一个
Select user from Db1.dbo.tableA where requirement = 1
update Db2.dbo.tableB SET point = point + 5 where user = user;
我想从数据库1表的用户,其中要求1 DB,然后更新DB2表B中的用户相匹配的用户,并通过5
我增加当前点这真是新手。
我不是一个代码人,我试图在mssql中每5分钟运行一次查询。查询问题从1个表中选择结果到另一个
Select user from Db1.dbo.tableA where requirement = 1
update Db2.dbo.tableB SET point = point + 5 where user = user;
我想从数据库1表的用户,其中要求1 DB,然后更新DB2表B中的用户相匹配的用户,并通过5
我增加当前点这真是新手。
您可以使用UPDATE FROM
与JOIN
:
UPDATE b
SET b.point = b.point + 5
FROM tableB b
INNER JOIN tableA a
ON a.[user] = b.[user]
WHERE
a.requirement = 1
如果我想限制它多一点,如a.requirement等于1,但是a.requirement 1具有多于5个相同来源的结果......我怎样才能让它成为b.point + 5只有来自同一来源的2个结果? 并允许一些来源超过限制... 在此先感谢! – Chillf2d
DECLARE @user <same datatype as in column>
Select @user = user from Db1.dbo.tableA where requirement = 1
update Db2.dbo.tableB SET point = point + 5 where user = @user;
编辑这只会工作,如果会出现一个单一的用户为第一查询的结果。对于多个用户,Felix的答案更合适
WITH tableAuser
AS
(
SELECT user FROM Db1.dbo.tableA WHERE requirement = 1
)
UPDATE b
SET b.point = b.point + 5
FROM Db2.dbo.tableB b
JOIN tableAuser a ON b.user = a.user
sql-server或mySql? –
好吧,这是查询'更新Db2.dbo.tableB SET点=点+ 5其中用户在(选择用户从Db1.dbo.tableA where需求= 1)' – Sankar
如果我想限制它多一点,如果a.requirement是等于1,但是有超过5个结果来自a.requirement 1的同一来源......我怎样才能让它成为b.point + 5只有2个结果只能来自同一个来源? 并允许一些来源超过限制... 在此先感谢! – Chillf2d