我想要实现的目标如下:
我想检查是否存在具有相同 client_code
但具有较低/不同 campaign id
的记录。我现在使用子查询,我也尝试使用连接来完成它,但我无法让逻辑工作
这就是我现在得到的:
$oDB = DB::table('campaigns AS c')
->select(
'c.id AS campaign_id',
'cc.id AS campaign_customer_id'
)
->join('campaign_customers AS cc', 'cc.campaign_id', '=', 'c.id')
->where('c.status', '=', ModelCampaign::STATUS_PLANNED)
->where('c.scheduled', '=', 1)
->whereRaw('c.scheduled_at <= NOW()')
->where('cc.status', '=', ModelCampaignCustomer::STATUS_INVITE_EMAIL_SCHEDULED)
->whereNotIn('cc.client_code', '=', function ($query){
$query ->select(DB::raw(1))
->from('campaign_customers')
->whereRaw('campaign_id', '!=', 'c.id');
})
->where('cc.active', '=', 1)
;
任何关于如何运作逻辑的提示都会很棒
最佳答案
您可以使用 ->to Sql();
方法查看 SQL,以便重构您的查询。
关于mysql - 子查询中不存在的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38699492/