首页 > 解决方案 > 如何使用内部联接修复此 COUNT 查询数据

问题描述

我有两个表 galang_dana 和 donasi,然后我尝试计算 galang_dana 表和 donasi 表中的所有数据。galang_dana 表中的数据有 6 个数据,当我尝试此查询时,它正确显示数据有 6 个数据

select count(galang_dana.id_galang_dana) as jumlah_galang_dana
from galang_dana

但是当我尝试使用此查询对这两个表进行内部连接以计算和汇总其他数据时,查询的数据 选择计数(galang_dana.id_galang_dana)作为 jumlah_galang_dana 显示 8 个数据。

select count(galang_dana.id_galang_dana) as jumlah_galang_dana,
       count( distinct donasi.id_user) as jumlah_donatur,
       SUM(donasi.jumlah_dana) as total_dana_terkumpul
from `galang_dana` left join
     `donasi`
     on `galang_dana`.`id_galang_dana` = `donasi`.`id_galang_dana`

标签: mysqlsqllaravel

解决方案


DB::table('galang_dana')
    ->selectRaw('
       COUNT(*) jumlah_galang_dana,
       (SELECT COUNT(*) FROM donasi WHERE donasi.id_galang_dana = galang_dana.id_galang_dana) jumlah_donatur,
       (SELECT SUM(`jumlah_dana`) FROM donasi WHERE donasi.id_galang_dana = galang_dana.id_galang_dana) total_dana_terkumpul
    ')
    ->groupBy('id')
    ->get();

推荐阅读