2011-04-22 13 views
12
UPDATE a JOIN b ON a.app_id=b.app_id GROUP BY a.app_id SET 

remark_avg=AVG(b.score),remark_count=COUNT(b.id); 

उपरोक्त मूल रूप से मैं क्या करना चाहता हूं, लेकिन यह मान्य MySQL कथन नहीं है, इसे सही तरीके से कैसे लिखना है?MySQL में किसी अन्य तालिका का कुल परिणाम फ़ील्ड को कैसे अपडेट करें?

उत्तर

18
UPDATE a 
INNER JOIN (SELECT AVG(b.score) avg_score, 
        COUNT(b.id) cnt_id, 
        b.app_id 
       FROM b 
      GROUP BY b.app_id) x ON x.app_id = a.app_id 
     SET remark_avg = x.avg_score, 
      remark_count = x.cnt_id; 
+0

इस उत्तर में "x" बराबर क्या है? – alexk

+0

@alexk: असल में यह एक नेस्टेड क्वेरी उपनाम है जिसे मैंने याद किया, अब तय – zerkms

संबंधित मुद्दे

 संबंधित मुद्दे