Laravel 使用查询生成器左联接行

Laravel left join Raw usning Query Builder

有没有办法使用查询生成器 left join Laravel 中的原始语句?

我有 table A:

   a_id  |  name  |
-----------------
   1     |  Foo   |
   2     |  Bar   |

和table B:

   a_id  |  status  |
---------------------
   1     |   true   |
   2     |   false  |
   1     |   false  |
   2     |   true   |
   2     |   false  |

和table C:

   a_id  |  status  |
---------------------
   1     |   true   |
   2     |   true   |
   2     |   false  |

那么 A left join B left join C 结果应该是:

   a_id  |  b_count  |   c_count
---------------------------------
   1     |     2     |     1
   2     |     3     |     2

我知道用纯 SQL 语句做这样的事情很简单,但我必须用查询生成器来做。

我自己找到的:

Model::selectRaw('
    A.a_id, 
    count(DISTINCT B.a_id) AS b_count, 
    count(DISTINCT C.a_id) AS c_count
')
    ->leftjoin('B', 'B.a_id', '=', 'A.a_id')
    ->leftjoin('C', 'C.a_id', '=', 'A.a_id')
    ->groupby('A.a_id');

使用DISTINCT是连接两个以上表的关键点。