PHP mysql 连表查询,查询子表某条件总数

有个用户表,用户收藏表,收藏表里面有个type 的,来分辨收藏的商家还是商品,然后现在想连表,获取用户信息的同时,也获取收藏商家的总数,和收藏的商品总数。

                user_collect
                id
                user_id
                type 1商家,2商品
                collect_id

            然后不知道怎么查比较好。求大神给些建议

SELECT a.*,(SELECT COUNT(*) FROM user_collect WHERE user_id = a.id and type=1) Num1, (SELECT COUNT(*) FROM user_collect WHERE user_id = a.id and type=2) Num2 FROM user a