2013-04-17 85 views
4

我想這將是簡單的,但我不能讓我的頭周圍...MySQL:使用另一個表中的COUNT更新表?

我有一個表tbl1,它有列idotherstuffnum

我有另一張表tbl2,它有id,info列。

我想要的是使num列的tbl1等於tbl2中具有相同id的行數。有點像這樣:

UPDATE tbl1 SET num = 
(SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id) 

任何想法?

+2

你試試看?看起來很像[this](http://stackoverflow.com/a/1216185/1037210)答案。 – Lion

+0

奇怪。我不認爲我寫的是正確的SQL。 – Alasdair

回答

8

如果NUM列是一個有效的數字輸入查詢內容將正常運行是:

UPDATE tbl1 SET num = (SELECT COUNT(*) FROM tbl2 WHERE id=tbl1.id) 
10
UPDATE tbl1, (select id, count(*) as idCount from tbl2 group by id) as t2 
SET tbl1.num = t2.idCount 
WHERE tbl1.id = t2.id; 
+0

這是在大型桌子上非常快速的完美解決方案。謝謝。 – DaveK

相關問題