有一个关于sql中伪列字段获取的疑问
$query2 = DB::table('contracts')
->leftJoin('invoices','invoices.contract_id','=','contracts.id')
->select('*')
->addSelect(DB::raw("CASE WHEN ISNULL(invoices.end_date) THEN DATE_SUB(contracts.start_date,INTERVAL 1 DAY) ELSE invoices.end_date END as `invoices.end_date2`"))
->addSelect(DB::raw("CASE WHEN ISNULL(invoices.end_date) THEN DATEDIFF(NOW(),DATE_SUB(contracts.start_date,INTERVAL 1 DAY)) ELSE DATEDIFF(NOW(),invoices.end_date) END as `invoices.diff_day`"))
->where('contracts.contract_type_id',29)
->groupBy('invoices.contract_id')
->having('diff_day','>=' ,30)
->orderByDesc('end_date2');
想问下这段代码转成的sql语句在sql中可以执行,但是跑接口的时候提示 diff_day 这个字段找不到,如果我想获取这个字段有什么思路吗?diff_day 是一个伪列。
推荐文章: