表格结构:
表A
id name qty ....
表B
id a_id ...
SQL:
select sum(a.qty)
from A a inner join B b on a.id=b.a_id;
现在我需要得到qty列的总和。但是它给出了重复的值。 我知道它可以通过内部查询来完成。但需要在单个查询中获得相同的内容。
这里,B与A有多对一的关系。所以,在sql查询中: 从A中选择a。* a.id = b.a_id上的内部联接B b给出了A的重复结果。我试图在单个查询中获得A的不同结果
感谢您的帮助。感谢。
答案 0 :(得分:0)
您的查询与以下内容完全相同:
select a_id
, sum(qty) qty
from B
group by a_id
我猜你想要更多来自a
的数据,在这种情况下使用:
select a.id
, b.qty
from A a
inner join (
select a_id
, sum(qty) qty
from B
group by a_id
) b
on a.id=b.a_id
group by a.id
请记住,select中的每个属性都应该在聚合函数中,或者在group by
中。 mysql
允许它,如果你没有,但它错了。