То, что я пытаюсь достичь следующего:WhereNotIn Subquery
Я хочу, чтобы проверить, есть ли запись с тем же 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)
;
любые советы о том, как работать логика будет замечательно
Это возвращает '' 0 => Массив: 3 [ "запрос" => «выберите отсчет (*) в качестве заполнителя из' 'campaigns', как c' внутреннее соединение' 'campaign_customers', как cc' на' куб.см '.'campaign_id' =' c'.'id' где 'c'.'status' =? и' c'.'cheduled' =? и c.scheduled_at <= NOW() и 'cc'.status' =? и 'cc'.'active' =?" "привязки" => массив: 4 [ 0 => 1 1 => 1 2 => 2 3 => 1 ] "время" => 0,51 ] ] '' – Taacoo
Я полагаю, что каждый ? это плохой возврат от моделей? – Taacoo
Нет, "?" символы - это информация запроса, которая может изменяться от одного запроса к другому: переменные, которые вы передаете в запрос. –