2012-01-06 14 views
17

では基本的に、私は次のことをしようとしています:SUM(サブクエリ)MYSQL

SELECT m.col1, SUM(SELECT col5 FROM table WHERE col2 = m.col1) 
FROM table AS m 

これが動作するようには思えません。解決策はありますか?

答えて

23

は、なぜあなたはこれをしない:

SELECT m.col1, (SELECT SUM(col5) FROM table WHERE col2 = m.col1) 
FROM table AS m 
+0

おかげで、それは私のために動作し、良い仕事。 。 –

4

はい - 使用は

SELECT m.col1, SUM(j.col5) FROM table AS m 
     JOIN table AS j ON j.col2 = m.col1 GROUP BY m.col1 
2

和は私たちが列を合計したい場合には、第2の選択の内部で使用される結合します。 テーブルmにそのような列がある場合、col2はあいまいな列である可能性があります。

SELECT 
    m.col1, 
    (SELECT SUM(t.col5) FROM table AS t WHERE t.col2 = m.col1) AS sumcol 
FROM table AS m