我需要编写一个连接多个表的查询,并在不同的表中总计几列。似乎无法弄明白该怎么做:
这是表格:
我想要获得的结果是添加了特定预算名称的合同预算的结果:即[这不起作用但提出了一个想法]
select c.contract_budget_f1, c.contract_budget_f2, cb.budget_type_id, c.id, sum(cb.budget_f1) as bf1, sum(cb.budget_f2) as bf2
from `flow_contract` c
left join `flow_contract_budget` cb on cb.contract_id = c.id
where c.program_id = '69'
group by cb.budget_type_id
整个结果集如下:
[budget_type_id]
[contract_budget_f1]
[contract_budget_f2]
[bf1]
[bf2]
它将返回3行,并添加每种预算类型的预算 我怎么能这样做,甚至可能吗?
以下是表格的链接 - 抱歉,没有意识到你无法点击它们......
http://media.bigblockstudios.ca/stack/program-name.gif
http://media.bigblockstudios.ca/stack/contract-budget.gif
http://media.bigblockstudios.ca/stack/contracts.gif
更新
我得到了这样的工作:
select c.id, c.program_id, c.contract_budget_f1, c.contract_budget_f2, cb.budget_f1, cb.budget_f2, cb.budget_type_id, c.id,
sum(cb.budget_f1) as bf1, sum(cb.budget_f2) as bf2
from `flow_contract` c
left join `flow_contract_budget` cb on cb.contract_id = c.id
where c.program_id = '".$formfields['program_id']."'
group by cb.budget_type_id
order by cb.budget_type_id
答案 0 :(得分:1)
我认为你想要的是:
group by cb.budget_type_id, cb.contract_id
或者相反。你能成为一个小提琴吗?
答案 1 :(得分:1)
简答:子查询
试试这个: 从子查询开始。
让它运行后,查看它是否可以优化子查询并只有一个查询。