文章詳情頁
mysql - 把一個表中的數據count更新到另一個表里?
瀏覽:91日期:2022-06-20 16:43:37
問題描述
UPDATE sites left join comments on comments.siteurl=sites.siteurl SET commentcount = count(comments.siteurl)
報錯:#1111 - Invalid use of group function
sites是網站表comments表是評論一個網站對應多個評論現在想把評論的數量統計出來直接更新到sites
找到個方法了:
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表數據更新了你都要那count重新寫入site?這樣不麻煩嗎?如果你只是想統計每個site的評論數。每次查詢的時候像你之前那樣鏈表就行了
回答2:count是聚合函數,直接這樣寫是不行的。你可以先把所有的數量查出來,然后直接在update的時候set commentcount=總數
上一條:mysql多表查詢的問題下一條:mysql優化 - 關于mysql分區
相關文章:
1. angular.js - angular做點擊購買時的遮罩層2. android - NavigationView 的側滑菜單中如何保存新增項(通過程序添加)3. 冒昧問一下,我這php代碼哪里出錯了???4. Thinkphp5.1報錯不支持Redis5. tp5 不同控制器中的變量調用問題6. 關于thinkphp 5.1中,ajax提交數據url的格式寫法,加花括號就出錯,請老師指點7. USE關鍵字8. 老師 我是一個沒有學過php語言的準畢業生 我希望您能幫我一下9. http://run.php.cn/在線PHP程序運行結果不正確10. 請問這位老師的PHPSTORM主題是自定義的嗎
排行榜
