0

我在两个对象(用户=>公司)之间有一个权限系统,带有permissions用于链接的表。现在我需要firms使用第一权限用户 ID 更新表。我做了这个查询:

UPDATE parim_firms, parim_permissions
SET parim_firms.firm_user_id = parim_permissions.permission_a_id
WHERE parim_firms.firm_user_id = 0
    AND parim_firms.firm_id = parim_permissions.permission_b_id

现在,如果一个公司散列多个链接用户,那么它将与第一个或最后一个匹配的用户一起更新吗?

我的逻辑说在第一次更新后firm_user_id != 0,该行不再更新。

但我不确定,也许它是否对所有连接行运行查询,最后一行将保留。

如果没有,那么我如何修改查询以仅使用第一个匹配的结果进行更新?

4

1 回答 1

1
 UPDATE parim_firms 
 SET parim_firms.firm_user_id = 
  ( 
    select  parim_permissions.permission_a_id from parim_permissions 
    WHERE   parim_firms.firm_id = 0 
    AND parim_firms.firm_id = parim_permissions.permission_b_id 
 )

或者

update parim_firms  a
set a.firm_user_id  = b.permission_a_id 
from  parim_permissions  b
WHERE   parim_firms.firm_id = 0 
    AND parim_firms.firm_id = parim_permissions.permission_b_id 
于 2012-10-22T11:24:08.237 回答