回答

收藏

多列从子查询更新

技术问答 技术问答 270 人阅读 | 0 人回复 | 2023-09-14

这种类型的东西以前被问过好几次,但不是我想找的。我需要它SET两行等于子查询的不同部分。
/ J& t0 h# K' N3 N我目前正在使用:
' ^4 a. ^0 U" J, F* n5 p  ^& LUPDATE recordsSET leads=(SELECT COUNT(*) FROM leads_table WHERE leads_table.blah=records.blah),earnings=(SELECT SUM(amount) FROM leads_table WHERE leads_table.blah=records.blah)WHERE句子明显简化了……但基本上是同一个子查询,但我不认为我应该运行两次?
7 O( w. L1 G1 `3 \我想做类似…
* P2 v; ]! j; rUPDATE recordsSET (leads,earnings)=(SELECT COUNT(*),SUM(amount) FROM leads_table WHERE leads_table.blah=records.blah)               
+ d9 u+ y" e% r1 `! {    解决方案:                                                                  k, x0 e5 n1 G& I; t' e0 l; d
                                                                您只需将表添加到子查询中进行一些计算,
7 ^$ P4 Q8 G0 Z% F7 ZUPDATE  records a        INNER JOIN    SELECT  blah,                    COUNT(*) totalCount,                   SUM(amount) totalSum            FROM    leads_table            GROUP   BY blah       b ON  b.blah = a.blahSET     a.leads = b.totalCount        a.earnings = b.totalSum
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则