Table_1 是類別資料

Table_2 是各類別出現紀錄

 

為了想要得知各類別的發生次數,沒出現的類別也要顯示出來,故只好使用 Left Join,但是 Count(*) 出來的資料至少都為1 (即使該類別沒出現過)。

 

Select a.*, Count(*)

    From Table_1 a

    Left Join Table_2 b on a.PK = b.FK

 

害我只好改寫成如下(感覺是很笨的寫法....但是也不知該怎麼改...)

 

Select a.*, (Select Count(*) From Table_2 b Where a.PK = b.FK)

    From Table_1 a

 

只是資料量大時,查詢的時間好久喔!上網意外搜尋到這網頁 (COUNT on LEFT JOIN),終於解決我的疑惑啦!

 

Select a.*, Count(FK)

    From Table_1 a

    Left Join Table_2 b on a.PK = b.FK

 

原來

Count(*)   計算全部

Count(PK)  計算 Table_1 (其實 Count(*) = Count(PK) 吧~)

Count(FK)  計算 Table_2

 

看來腦子太久沒用囉.......該常常上網學習刺激一下啦!!!

arrow
arrow
    全站熱搜

    tsuozoe 發表在 痞客邦 留言(1) 人氣()