它必须是很容易的,但我不认为任何解决方案中也可以找到答案的地方...左加入2和表1个表
我得到了表“用户”
和一个表 '博客'(USER_ID,博文)
和一个表 '消息'(USER_ID,消息)
我想有以下结果:
User | count(blogs) | count(messages)
Jim | 0 | 3
Tom | 2 | 3
Tim | 0 | 1
Foo | 2 | 0
因此,我所做的是:
SELECT u.id, count(b.id), count(m.id) FROM `users` u
LEFT JOIN blogs b ON b.user_id = u.id
LEFT JOIN messages m ON m.user_id = u.id
GROUP BY u.id
它显然不起作用,因为第二个左连接涉及博客而不是用户。有什么建议么?
+1子选择是最好和最快的选择。 – Johan
好的,谢谢你们!我一直认为子语是邪恶的。 – user993692
@ user993692 - 取决于子查询。现代数据库足够聪明,可以优化子查询,在这种情况下,您只需要一个关键搜索,这非常轻便(假设您没有数十万用户)。 – z00l