2014-03-03 26 views
0

我在MYSQL基地有3個表,我有比較多少時間有各自USER_ID各2第一個表(表1和表2)MYSQL計數OCCURENCES separatly從2個表

這裏我的表1:

USER_ID

  • d
  • ...

這裏是我的表2:

USER_ID

  • 一個
  • Ç
  • 一個
  • ...

這裏是我的表3(與USER_ID和暱稱之間的連接):

USER_ID //暱稱

  • 一個//鮑勃
  • 乙//喬
  • Ç//湯姆
  • ...

我想獲得這樣的結果:

暱稱//計數從表出現1 //從表2

  • 鮑勃// 1 // 2
  • 喬// 4 // 0
  • 湯姆// 0 // 2計數出現

我沒有成功的瞬間separatly每個表算,我得到了每個暱稱:( 能不能幫我找到合適的MYSQL請求一個全球性的結果呢? - ...

+0

你能自己解決這個問題的任何部分? – Strawberry

回答

0

這種類型的查詢有點棘手,因爲有些名稱可能不在第一個表中,有些名稱可能不在第二個表中。要真正解決這類問題,您需要預先彙總每個查詢的結果。要得到所有的名字,你需要一個left outer join

select t3.name, coalesce(cnt1, 0) as cnt1, coalesce(cnt2, 0) as cnt2 
from table3 t3 left outer join 
    (select name, count(*) as cnt1 
     from table1 
     group by name 
    ) t1n 
    on t3.name = t1n.name left outer join 
    (select name, count(*) as cnt2 
     from table2 
     group by name 
    ) t2n 
    on t3.name = t1n.name; 
+0

非常感謝!你做了我的一天:D – user2750493