2013-08-28 116 views
0

我有表subcategorylisting_categorylistin_category表具有不同的記錄,其中包括subcategorycategory。我想要的是找到所有subcategory計數爲具體category說類別= 3,在我的listing_Category表中更新它在subcategory表。 什麼,我試圖做到這一點需要mysql更新選擇查詢進行優化

UPDATE `subcategories` SET total_count = (SELECT count(*) 
FROM `listings_category` 
WHERE category =3 and subcategory IN (subcategories.id) 
WHERE category_id =3 and id=subcategories.id 

我在做陣列subcategories.id有問題。任何幫助將不勝感激。如果有人提出更優化的查詢將會很棒。在此先感謝

+0

你就可以說'在(從子類中選擇id其中任何)' – dcaswell

回答

1

我自己解決:)我不知道爲什麼人們投票否定有意義的問題。 這裏是解決方案。

update subcategories, 
     (
     SELECT subcategory,count(subcategory) as count 
      FROM `listings_category` 
      group by subcategory 
     ) sb 
    SET subcategories.total_count = sb.count 
where subcategories.id = sb.subcategory 
+1

+1。更好地使用顯式ANSI'JOIN'語法而不是隱式逗號 – peterm