如何用查询SUM表获取JOIN查询,我有两个表,我的表是laporanlaporan_pengeluaran

表拉波兰

id  name    shell
9   loli    12000
10  ardi    24000
11  dian    5500


表laporan_pengeluaran

id  laporan_id  harga
1   9           15000
2   9           29000
3   10          7500
4   10          5000
5   11          3000
6   11          3000


我的问题是,如何用联接表获取SUM,表laporan中按ID /名称分组,所以我想得到如下结果:

id  name    shell   harga
9   loli    12000   44000
10  ardi    24000   12500
11  dian    5500    6000


谢谢。

最佳答案

您可以先联接两个表,然后联接sum(harga)以获得结果。如果您知道在laporan表中始终有laporan_pengeluaran值,则可以使用INNER JOIN

select l.id,
  l.name,
  l.shell,
  sum(lp.harga) harga
from laporan l
inner join laporan_pengeluaran lp
  on l.id = lp.laporan_id
group by l.id, l.name, l.shell


SQL Fiddle with Demo

如果laporan表中可能缺少laporan_pengeluaran值,请使用LEFT JOIN

select l.id,
  l.name,
  l.shell,
  sum(lp.harga) harga
from laporan l
left join laporan_pengeluaran lp
  on l.id = lp.laporan_id
group by l.id, l.name, l.shell


SQL Fiddle with Demo

结果是:

| ID | NAME | SHELL | HARGA |
-----------------------------
|  9 | loli | 12000 | 44000 |
| 10 | ardi | 24000 | 12500 |
| 11 | dian |  5500 |  6000 |

关于mysql - 使用Join表获取总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14163240/

10-16 06:49
查看更多