Php 获取列和的SQL
我有三张桌子连在一起Php 获取列和的SQL,php,mysql,sql,Php,Mysql,Sql,我有三张桌子连在一起 mysql> select * from tablea; +----+--------+ | id | name | +----+--------+ | 1 | Item 1 | | 2 | Item 2 | +----+--------+ 2 rows in set (0.00 sec) mysql> select * from tableb; +----+------+----------+ | id | Aid | name | +--
mysql> select * from tablea;
+----+--------+
| id | name |
+----+--------+
| 1 | Item 1 |
| 2 | Item 2 |
+----+--------+
2 rows in set (0.00 sec)
mysql> select * from tableb;
+----+------+----------+
| id | Aid | name |
+----+------+----------+
| 1 | 1 | B Item 1 |
| 2 | 2 | B Item 2 |
| 3 | 1 | B Item 3 |
+----+------+----------+
3 rows in set (0.00 sec)
mysql> select * from tablec;
+----+------+----------+-------+
| id | Bid | name | value |
+----+------+----------+-------+
| 1 | 1 | C Item 1 | 10 |
| 2 | 2 | C Item 2 | 20 |
| 3 | 1 | C Item 3 | 15 |
| 4 | 2 | C Item 4 | 5 |
| 5 | 3 | C Item 5 | 12 |
+----+------+----------+-------+
5 rows in set (0.00 sec)
表A通过Aid链接到表B,表C通过Bid链接到表B
我想要的是tableA的id,所有TableC项的值之和都在它下面
我期望上面示例的结果集是
+-----------+--------+
| tablea.id | sum |
+-----------+--------+
| 1 | 37 |
| 2 | 25 |
+-----------+--------+
如果表a中的ID
可能不存在于其他表中,并且您也希望显示其结果,请改用LEFT JOIN
SELECT a.ID, COALESCE(SUM(c.value), 0) totalValue
FROM tablea a
LEFT JOIN tableb b
On a.ID = b.AID
LEFT JOIN tablec c
ON b.ID = c.BID
GROUP BY a.ID
SELECT a.id AS A, SUM(c.value) AS SUM FROM tablea a INNER JOIN tableb b ON a.id = b.Aid INNER JOIN tablec c ON b.id = c.Bid GROUP BY a.id;
你试过加入他们吗?
SELECT a.ID, COALESCE(SUM(c.value), 0) totalValue
FROM tablea a
LEFT JOIN tableb b
On a.ID = b.AID
LEFT JOIN tablec c
ON b.ID = c.BID
GROUP BY a.ID
SELECT a.id AS A, SUM(c.value) AS SUM FROM tablea a INNER JOIN tableb b ON a.id = b.Aid INNER JOIN tablec c ON b.id = c.Bid GROUP BY a.id;