我有两张桌子
fw_invitations
id moduleid qdetailid
1 1 10
2 2 11
3 3 12
4 7 13
5 8 14
fw_ind_details
id moduleid officeid
10 0 100
11 0 110
12 0 120
13 0 130
14 0 104
列qdetaild是fw_ind_details
中的主键。我想要做的是想从moduleid
表中获取特定fw_invitations
的{{1}}并希望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
我知道我的做法是错误的,任何建议都会受到赞赏。
我愿意使用PHP。
答案 0 :(得分:7)
UPDATE fw_ind_details d
JOIN fw_invitations i ON i.qdetailid = d.id
SET d.moduleid = i.moduleid
要在有多个匹配项时获取特定模块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
答案 1 :(得分:3)
使用加入...
UPDATE `fw_ind_details`
JOIN fw_invitations ON fw_ind_details.id = fw_invitations.qdetailid
SET fw_ind_details.moduleid = fw_invitations.moduleid
答案 2 :(得分:2)
要使用的SQL是:
UPDATE `fw_ind_details` fi
SET `moduleid`=(SELECT moduleid
FROM fw_invitaions fo
WHERE fo. qdetailid =fi.id
)