当equi join返回多行时更新列

时间:2018-04-06 13:07:49

标签: sql sql-server-2008

我有这样的查询:

update TABLEA set x1 = b.x2, y1 = b.y2
from TABLEB b
where pid = b.id

但是,ID在TABLEB中不是唯一的,因此可以返回0,1行或更多行。它似乎正在工作,我实际上并不困扰我从哪个行获取数据,因为我想要的x2 / y2值对于相同的ID总是相同的。

以上是否可以,它只是从一行更新,还是应该修改sql以确保只返回一行?为了将来参考,即使它没问题,查询只返回它找到的第一行,它是否与上面一样有效?

感谢。

1 个答案:

答案 0 :(得分:0)

您的代码很好,但它会使用不确定的值进行更新。

如果您对此感兴趣,可以使用%

print("Your name and password are: %s, %s" % (name, password))

通过在子查询中放置apply,您可以控制更新哪个值。