仅显示当前月份没有发票的实例

时间:2016-07-16 10:54:57

标签: sql laravel eloquent

我试图只显示当前月份没有发票的那些实例,但是有可能存在较旧的发票而且无关紧要。

我的目标主要是建立以下

SELECT * FROM
 instance
WHERE 
 1=1
AND
instance.active=true
AND
 instance.id NOT IN 
 (
  SELECT instance_id FROM invoice WHERE invoice_date='2016-07-01'
 )

这是我提出的,但它无法正常工作

    $instances= Instance::where('active', '=', true)->with(['invoice' => function($query) {
    $query->where('invoice_date', '!=',Carbon\Carbon::now()->format('Y-m-01'));
    }])->get();

1 个答案:

答案 0 :(得分:0)

现在,应该这样做

    $instances= Instance::where('active', '=', true)->whereHas('invoice', function($query) {
          return $query->where('invoice_date', '<', Carbon\Carbon::now()->format('Y-m').'-01');
    })->with('invoice')->get();