Php 从两个具有总成本的表中选择全部
我尝试从mysql数据库的两个表中选择全部,总成本的总和在第二个表中 我有一个表名Php 从两个具有总成本的表中选择全部,php,mysql,Php,Mysql,我尝试从mysql数据库的两个表中选择全部,总成本的总和在第二个表中 我有一个表名tbl_projectcontain db_id db_projectname db_totalcost 1 test 200 2 test 300 3 test2 800 db\u id db\u projectname和其他列 1 test 2 test2 3
tbl_project
contain
db_id db_projectname db_totalcost
1 test 200
2 test 300
3 test2 800
db\u id db\u projectname
和其他列
1 test
2 test2
3 test3
第二个表名tbl_活动
contain
db_id db_projectname db_totalcost
1 test 200
2 test 300
3 test2 800
我想要的是
test 500
test2 800
test3
我尝试了这个查询,但没有给出那个结果
select tbl_project.db_id, tbl_project.db_projectname,tbl_project.db_location,tbl_project.db_client,tbl_project.db_transferredto,tbl_project.db_psd,tbl_project.db_pdd,tbl_project.db_duration,tbl_project.db_past,tbl_project.db_padd,tbl_project.db_aduration,tbl_project.db_percent,tbl_project.db_pnote,tbl_project.db_user,tbl_project.db_cpercentage,tbl_project.db_epercentage,tbl_project.db_mpercentage,tbl_project.db_status,tbl_project.db_offer,tbl_project.db_sheet,tbl_project.db_invoice,tbl_project.db_po,sum(tbl_activities.db_totalcost) as total_cost from tbl_project,tbl_activities where
tbl_project.db_projectname=tbl_activities.db_projectname
它给我
测试但只测试另一个项目和一个项目的总和,而不是所有项目您需要使用
左加入和分组方式
SELECT
tbl_project.db_id,
tbl_project.db_projectname,
tbl_project.db_location,
tbl_project.db_client,
tbl_project.db_transferredto,
tbl_project.db_psd,
tbl_project.db_pdd,
tbl_project.db_duration,
tbl_project.db_past,
tbl_project.db_padd,
tbl_project.db_aduration,
tbl_project.db_percent,
tbl_project.db_pnote,
tbl_project.db_user,
tbl_project.db_cpercentage,
tbl_project.db_epercentage,
tbl_project.db_mpercentage,
tbl_project.db_status,
tbl_project.db_offer,
tbl_project.db_sheet,
tbl_project.db_invoice,
tbl_project.db_po,
sum(
tbl_activities.db_totalcost
) AS total_cost
FROM
tbl_project
LEFT JOIN tbl_activities ON tbl_project.db_projectname = tbl_activities.db_projectname
GROUP BY tbl_project.db_id
注意: 使用
aggregate
函数(例如SUM、COUNT..),而不使用groupby
将结果集压缩为一行。尝试此操作
SELECT
db_projectname.db_projectname,SUM(tbl_activities.db_totalcost) AS total_cost
FROM db_projectname
LEFT JOIN tbl_activities
ON
db_projectname.db_projectname = tbl_activities.db_projectname
GROUP BY db_projectname.db_projectname
选择的字段比所需输出中的字段多得多-是否需要选择所有字段?我不确定,但我认为您应该按“db_projectname”分组。因为db_id将有不止一个。