I thought this would be simple but I can\'t get my head around it...
I have one table tbl1 and it has columns id,otherstuff,
tbl1
id
otherstuff
If your num column is a valid numeric type your query should work as is:
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;