它必須是很容易的,但我不認爲任何解決方案中也可以找到答案的地方...左加入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