Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从两个具有总成本的表中选择全部_Php_Mysql - Fatal编程技术网

Php 从两个具有总成本的表中选择全部

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

我尝试从mysql数据库的两个表中选择全部,总成本的总和在第二个表中 我有一个表名
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将有不止一个。