php - 使用其他列的值更新多列

标签 php mysql sql

<分区>

我有两张 table

fw_邀请

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 中的主键。我想做的是从 fw_invitations 表中获取 moduleid特定的 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

这是我到目前为止尝试过的;

UPDATE `fw_ind_details` 
SET `moduleid`=(select moduleid 
               from fw_invitaions fo,fw_ind_details fi
               where f0.qdetailid=fi.id
                             )

我知道我的方法是错误的,任何建议将不胜感激。

我愿意使用 PHP。

最佳答案

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

关于php - 使用其他列的值更新多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20265291/

相关文章:

php - 页面在 iOS 加载查询时卡住

mysql - 最大化 MySQL 分析服务器的内存使用

mysql - 在 MySQL 数据库(或表)中验证我的权限

php - 对我的 foreach 循环结果进行分类

sql - 如何在HSQLDB中使用多行SELECT语句导出数据?

php - 在 CodeIgniter for Oracle 中设置数据库模式

PHP、MySQL、HTML

php - HTML 表单不提交数据?

mysql - 计算购买表中不同的新用户(MySQL)

sql - 如果测试 rownum 的值大于 100,则表 rownum 返回 0 条记录