使用Join表获取Sum

Lor*_*mly 0 mysql select join group-by

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

表laporan

id  name    shell
9   loli    12000
10  ardi    24000
11  dian    5500
Run Code Online (Sandbox Code Playgroud)

table laporan_pengeluaran

id  laporan_id  harga
1   9           15000
2   9           29000
3   10          7500
4   10          5000
5   11          3000
6   11          3000
Run Code Online (Sandbox Code Playgroud)

我的问题,如何使用连接表获取SUM,在表laporan中按id/name分组,所以我想获得如下结果:

id  name    shell   harga
9   loli    12000   44000
10  ardi    24000   12500
11  dian    5500    6000
Run Code Online (Sandbox Code Playgroud)

谢谢.

Tar*_*ryn 5

您可以加入这两个表,然后sum(harga)获得结果.如果你知道你laporanlaporan_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
Run Code Online (Sandbox Code Playgroud)

请参阅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
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo

结果是:

| ID | NAME | SHELL | HARGA |
-----------------------------
|  9 | loli | 12000 | 44000 |
| 10 | ardi | 24000 | 12500 |
| 11 | dian |  5500 |  6000 |
Run Code Online (Sandbox Code Playgroud)