Php 在基于MySQL的table1\u id中按和排序?

Php 在基于MySQL的table1\u id中按和排序?,php,mysql,sql,sum,sql-order-by,Php,Mysql,Sql,Sum,Sql Order By,我有一些桌子,那就是桌子A,桌子B,桌子C和桌子D TABLE_A id_a | Name A1 | ASD A2 | ZXC TABLE_B id_b | id_a B1 | A1 B2 | A2 TABLE_C id_c | id_b | Value C1 | B1 | 1 C2 | B1 | 1 C3 | B2 | 1 C4 | B2 | 1 C5 | B2 | 1 TABLE_D id_d | id_a | Bill D1

我有一些桌子,那就是桌子A,桌子B,桌子C和桌子D

TABLE_A
id_a | Name
A1   | ASD
A2   | ZXC

TABLE_B
id_b | id_a
B1   | A1
B2   | A2

TABLE_C
id_c | id_b | Value
C1   | B1   | 1
C2   | B1   | 1
C3   | B2   | 1
C4   | B2   | 1
C5   | B2   | 1

TABLE_D
id_d | id_a | Bill
D1   | A1   | 5
D2   | A2   | 10
对于每个表a.id\U a,我希望将SUMtable_c.值设置为tot1,将SUMtable_d.bill设置为tot2,如下所示:

id_a  | SUM_VALUE of table_c | SUM_BILL of table_d
A1    | 2                    | 5
A2    | 3                    | 10
$sql=" SELECT *, SUM(table_c.value) as tot1, SUM(table_d.bill) as tot2
FROM table_a
LEFT JOIN table_b ON table_b.id_a=table_a.id_a
LEFT JOIN table_c ON table_c.id_b=table_b.id_b
GROUP BY id_a ";
id_a  | SUM_VALUE of table_c | SUM_BILL of table_d
A1    | 2                    | 10
A2    | 3                    | 30
我使用了脚本,如下所示:

id_a  | SUM_VALUE of table_c | SUM_BILL of table_d
A1    | 2                    | 5
A2    | 3                    | 10
$sql=" SELECT *, SUM(table_c.value) as tot1, SUM(table_d.bill) as tot2
FROM table_a
LEFT JOIN table_b ON table_b.id_a=table_a.id_a
LEFT JOIN table_c ON table_c.id_b=table_b.id_b
GROUP BY id_a ";
id_a  | SUM_VALUE of table_c | SUM_BILL of table_d
A1    | 2                    | 10
A2    | 3                    | 30
但是,我得到了一个错误的结果,如下所示:

id_a  | SUM_VALUE of table_c | SUM_BILL of table_d
A1    | 2                    | 5
A2    | 3                    | 10
$sql=" SELECT *, SUM(table_c.value) as tot1, SUM(table_d.bill) as tot2
FROM table_a
LEFT JOIN table_b ON table_b.id_a=table_a.id_a
LEFT JOIN table_c ON table_c.id_b=table_b.id_b
GROUP BY id_a ";
id_a  | SUM_VALUE of table_c | SUM_BILL of table_d
A1    | 2                    | 10
A2    | 3                    | 30
有人帮我吗? 谢谢

这应该可以做到,你需要分组来获得不止一个结果。

我没有测试它,但它应该可以工作:


尝试如下。它应该会起作用。如果对特定列使用聚合函数,则该列应为GROUPBY子句中的外接程序

SELECT SUM(bill) AS total_bill 
from table1, table2 
WHERE table1.table1_id=table2.table2_id 
AND table2_id= yourId
Group by table1_id
order by bill;

请添加样本数据和预期结果。