0

私は2つのテーブルを持っています。

表1:-

id     name

1       k
2       a

表2:-

id    sub1    sub2

1      10      20
2      30      40

k->30およびa->70として出力したい。

次のクエリを実行しました。

SELECT tbl_1.`name` , SUM(tbl_2.sub1 + tbl_2.sub2) as total 
from tbl_1, tbl_2 WHERE tbl_1.id = tbl_2.id;

出力:-

k-> 100

しかし、私は好きが欲しい

k-> 30 a-> 70

誰かが何か考えを持っているなら親切に助けてください....

4

3 に答える 3

3

を削除してSUM()、そのまま使用しますtbl_2.sub1 + tbl_2.sub2

SUM()すべての行の値を合計することにより、「垂直に」合計します。

+この場合、列の値を合計することによって「水平に」合計します。

あなたが行っていた方法は、水平方向と垂直方向の両方を合計しました。

于 2012-04-13T10:18:02.107 に答える
2

これを試して

SELECT t1.name, (t2.sub1+t2.sub2) AS total
FROM table1 t1 INNER JOIN table2 t2
    ON t1.id = t2.id
于 2012-04-13T10:18:41.433 に答える
1
select name, (sub1+sub2) as total from tbl_1, tbl_2 where tbl_1.id = tbl_2.id;

SUMは列レベルの演算子であり、行レベルの操作を実行しようとしている必要があります。シンプル+で理想的には問題を解決する必要があります。

于 2012-04-13T10:22:10.547 に答える