我有两张桌子
fw_invitations
id moduleid qdetailid
1 1 10
2 2 11
3 3 12
4 7 13
5 8 14
Run Code Online (Sandbox Code Playgroud)
fw_ind_details
id moduleid officeid
10 0 100
11 0 110
12 0 120
13 0 130
14 0 104
Run Code Online (Sandbox Code Playgroud)
列qdetaild是主键.fw_ind_details我想要做的是想要moduleid从该fw_invitations表获取该特定qdetailid并希望更新.fw_ind_details这应该用更新查询来完成.
期望的输出
fw_ind_details
id moduleid officeid
10 1 100
11 2 110
12 3 120
13 7 130
14 8 104
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的;
UPDATE `fw_ind_details`
SET `moduleid`=(select moduleid
from fw_invitaions fo,fw_ind_details fi
where f0.qdetailid=fi.id
)
Run Code Online (Sandbox Code Playgroud)
我知道我的做法是错误的,任何建议都将受到赞赏.
我愿意使用PHP.
UPDATE fw_ind_details d
JOIN fw_invitations i ON i.qdetailid = d.id
SET d.moduleid = i.moduleid
Run Code Online (Sandbox Code Playgroud)
要在有多个匹配项时获取特定模块ID,可以使用子查询加入; 此示例使用最高模块ID:
UPDATE fw_ind_details d
JOIN (SELECT qdetailid, MAX(moduleid) moduleid
FROM fw_invitations
GROUP BY qdetailid) i
ON i.qdetailid = d.id
SET d.moduleid = i.moduleid
Run Code Online (Sandbox Code Playgroud)