mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?
問題描述
UPDATE sites left join comments on comments.siteurl=sites.siteurl SET commentcount = count(comments.siteurl)
報(bào)錯(cuò):#1111 - Invalid use of group function
sites是網(wǎng)站表comments表是評(píng)論一個(gè)網(wǎng)站對(duì)應(yīng)多個(gè)評(píng)論現(xiàn)在想把評(píng)論的數(shù)量統(tǒng)計(jì)出來直接更新到sites
找到個(gè)方法了:
UPDATE sites A INNER JOIN (SELECT *, COUNT(*) idcount FROM comments GROUP BY siteurl) as B ON B.siteurl = A.siteurlSET A.commentcount = B.idcount
問題解答
回答1:為何要將count寫入site表 那豈不是每次comment表數(shù)據(jù)更新了你都要那count重新寫入site?這樣不麻煩嗎?如果你只是想統(tǒng)計(jì)每個(gè)site的評(píng)論數(shù)。每次查詢的時(shí)候像你之前那樣鏈表就行了
回答2:count是聚合函數(shù),直接這樣寫是不行的。你可以先把所有的數(shù)量查出來,然后直接在update的時(shí)候set commentcount=總數(shù)
相關(guān)文章:
1. MySQL 使用 group by 之后然后 IFNULL(COUNT(*),0) 為什么還是會(huì)獲得 null2. wordpress里,這樣的目錄列表是屬于小工具還是啥?3. 一直報(bào)這個(gè)錯(cuò)誤4. 常量在外面不加引號(hào)會(huì)報(bào)錯(cuò)。5. python如何設(shè)置一個(gè)隨著系統(tǒng)時(shí)間變化的動(dòng)態(tài)變量?6. mysql - 大部分?jǐn)?shù)據(jù)沒有行溢出的text字段是否需要拆表7. mysql federated引擎無法開啟8. sublime text3安裝package control失敗9. 我的怎么不顯示啊,話說有沒有QQ群什么的10. mysql 為什么主鍵 id 和 pid 都市索引, id > 10 走索引 time > 10 不走索引?
