在 MySQL 4.1 以上版本怎麼把某個 table 的 COUNT 總數複製到另一個 table 對應的欄位裡呢?
假設這裡有 a 和 b 兩個 table ,其中 b 表有一個欄位 a_id 對應到 a 表的 id 主鍵,而 a 表有個欄位 total 要記錄在 b 表中屬於 a 表的記錄總共有多少筆。一直記得 SQL 可以很簡單做到,可以一下子就是想不起來。
感謝 Neo 一語驚醒夢中人,用 Sub Query 就搞定了:
1
2
3
4
5
| <strong>UPDATE</strong> a, (<strong>SELECT</strong> a_id, <strong>COUNT</strong>(*) <strong>AS</strong> total
<strong>FROM</strong> b
<strong>GROUP</strong> <strong>BY</strong> a_id) <strong>AS</strong> c
<strong>SET</strong> a.total = c.total
<strong>WHERE</strong> a.id = c.a_id;
|
這裡記下來先,不然到時候又忘了;可能有更好的方法,不過目前先完成工作要緊。 :)