所以,我試圖選擇一些記錄,如果他們不存在於另一個表中。 我有三個型號,鉛,SalesLog和的Cron和想法是讓已經不在SalesLog所有引線和在created_at
字段大於或等於比Cronsduplicated_days
場。選擇所有不存在於另一個表中的記錄Laravel
到目前爲止,有一些看起來像這樣,但它不是在所有
$leads = Lead::whereIn('status', [$minimumRequiredStatus])->whereNotIn('id', function($query) use ($cron) {
$query->table('sales_log')->select(['id'])->where('campaign', $cron->campaign);
})->get();
工作,我可以使用過濾器,但我最終可能會被成千上萬的leads
兩個工作並可能數以百萬計的記錄和sales_log
tables ..這讓我擔心離線做它。
我怎麼能運行一個查詢,只會得到所有leads
是所要求的狀態,尚未在sales_log
內,其created_at
場等於或大於,例如說30天。
這個帶有過濾器的版本實際上是按照預期的方式工作的,但是我擔心這種操作在兩個表上都有幾個記錄會對性能產生影響。
$leads = $cron->campaign->validLeads->filter(function($lead) use ($cron) {
if($cron->salesLogs->contains(SalesLog::LEAD_ID, $lead->{Lead::ID}))
return false;
return true;
});
至於型號都在關注我有4款車型應該用於此處時,鉛模式,是指包含導線用於每個活動一個活動模型中leads
表,Cron模型包含所有Crons 屬於 a Campaign。 最後有一個SalesLog模型中,所有的線索,一旦通過CURL發送被添加到這個表,這是我怎麼能告訴從而導致被送往以及其中活動
因此,回顧一下
活動是它可以訪問鉛模型中的頂級型號,並通過的hasMany關係的Cron模型。
鉛是表格的模型,其中所有鉛存儲。無論廣告系列如何。它屬於一個活動和有許多SalesLog
的克朗也屬於一個活動和通過其他模型有很多銷售日誌。
最後,SalesLog屬於一個活動也屬於一個鉛
這樣的想法是通過克朗我可以訪問所有SalesLogs爲克朗,我需要得到所有潛在客戶從活動其中領導的ID不在SalesLogs爲運動
你試過'雄辯:hasNot()方法嗎? –
@AddWebSolutionPvtLtd我找不到該方法的文檔,你能給我一個鏈接嗎? –
[請求鏈接](https://github.com/laravel/framework/issues/3413)。這是GIT請求鏈接。希望這會幫助你。 –