我想這將是簡單的,但我不能讓我的頭周圍...MySQL:使用另一個表中的COUNT更新表?
我有一個表tbl1
,它有列id
,otherstuff
,num
。
我有另一張表tbl2
,它有id
,info
列。
我想要的是使num
列的tbl1
等於tbl2
中具有相同id
的行數。有點像這樣:
UPDATE tbl1 SET num =
(SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
任何想法?
我想這將是簡單的,但我不能讓我的頭周圍...MySQL:使用另一個表中的COUNT更新表?
我有一個表tbl1
,它有列id
,otherstuff
,num
。
我有另一張表tbl2
,它有id
,info
列。
我想要的是使num
列的tbl1
等於tbl2
中具有相同id
的行數。有點像這樣:
UPDATE tbl1 SET num =
(SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
任何想法?
如果NUM列是一個有效的數字輸入查詢內容將正常運行是:
UPDATE tbl1 SET num = (SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id)
UPDATE tbl1, (select id, count(*) as idCount from tbl2 group by id) as t2
SET tbl1.num = t2.idCount
WHERE tbl1.id = t2.id;
這是在大型桌子上非常快速的完美解決方案。謝謝。 – DaveK
你試試看?看起來很像[this](http://stackoverflow.com/a/1216185/1037210)答案。 – Lion
奇怪。我不認爲我寫的是正確的SQL。 – Alasdair