首页 > 解决方案 > 选择没有佣金的地方

问题描述

我有 2 张桌子。

  1. account_receivables
  2. 佣金

account_receivables有很多佣金

commissions对 有一个外键account_receivables_id

我的应用程序的工作方式是,当account_receivables获得插入时,它还会计算一组销售代表的佣金,基于account_receivables.amount.

有 2 个月的时间,它随机错过了 1 名销售代表。所以我想做的是找出所有的account_receivables.id佣金被遗漏的地方。

是否有直接的 SQL 查询?这是一个 Laravel 应用程序,我尝试了以下方法,但没有成功:

$comms = DB::connection('mysqllocal')->table('commissions')
        ->select('account_receivables_id')
        ->whereNotIn('rep_group_number', [999999])
        ->groupBy('account_receivables_id')->get();

999999是 rep_group_number

标签: mysqlsqllaravel

解决方案


基本上,您正在寻找account_receivables其中没有相应记录的所有记录commissions

一个简单LEFT JOINWHERE ... IS NULL应该做。

select ar.id
from account_receivables ar
left join commissions c on c.account_receivables_id = ar.id
where c.id is null

您没有在问题中给出完整的表格结构;上面的查询假设两个表之间的关系如下(如果需要,可以调整):

commissions.account_receivables_id -> account_receivables.id

推荐阅读