顯示廣告
隱藏 ✕
看板 Book11
作者 book11 (不可失憶)
標題  SQL 如何計算紀錄總數並更新到另一個表
時間 2011年06月22日 Wed. PM 11:14:21


http://www.jaceju.net/blog/archives/229

在 MySQL 4.1 以上版本怎麼把某個 table 的 COUNT 總數複製到另一個 table 對應的欄位裡呢?

假設這裡有 a 和 b 兩個 table ,其中 b 表有一個欄位 a_id 對應到 a 表的 id 主鍵,而 a 表有個欄位 total 要記錄在 b 表中屬於 a 表的記錄總共有多少筆。一直記得 SQL 可以很簡單做到,可以一下子就是想不起來。

感謝 Neo 一語驚醒夢中人,用 Sub Query 就搞定了:

UPDATE a, (SELECT a_id, COUNT(*) AS total
FROM b
GROUP BY a_id) AS c
SET a.total = c.total
WHERE a.id = c.a_id;

--
※ 作者: book11 時間: 2011-06-22 23:14:21
※ 看板: Book11 文章推薦值: 0 目前人氣: 0 累積人氣: 71 
1樓 時間: 2011-06-22 23:28:20 (台灣)
(ゝω・)
  06-22 23:28 TW
這招不能用
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇