我有两张桌子。
id name
1 k
2 a
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
如果有人有任何想法请帮助....
答案 0 :(得分:3)
删除SUM()
,然后使用tbl_2.sub1 + tbl_2.sub2
。
SUM()
通过对所有行的值求和来“垂直”求和。
+
通过对列的值求和来“水平”求和。
你这样做的方式是水平和垂直相加。
答案 1 :(得分:2)
试试这个
SELECT t1.name, (t2.sub1+t2.sub2) AS total
FROM table1 t1 INNER JOIN table2 t2
ON t1.id = t2.id
答案 2 :(得分:1)
select name, (sub1+sub2) as total from tbl_1, tbl_2 where tbl_1.id = tbl_2.id;
SUM
是一个列级操作符,我们需要尝试执行行级操作。
一个简单的+
应该理想地解决问题。