我有兩個查詢來自兩個不同的表。第一個包含我想在第二個查詢中使用的ID。現在我這樣做。我將ID提取到一個新數組中,然後在第二個查詢中使用->whereIn()
中的該數組。如何將ID數組從一個Laravel查詢傳遞到另一個
$campaign = DB::connection('mysql2')->table('mc_spots')
->select('s_customer', 's_product', 'spotid')
->where('s_starttermin', '>=', date("Y-m-d", strtotime($dateFrom)))
->where('s_lastrun', '<=', date("Y-m-d", strtotime($dateUntil)))
->where('s_media', '=', $media)
->where(function ($query) use ($products) {
for ($i = 0; $i < count($products); $i++) {
$query->orwhere('s_product', '=', $products[$i]);
}
})
->get();
$campaignID = [];
foreach ($campaign as $c) {
array_push($campaignID, $c->spotid);
}
$table = DB::connection('mysql2')->table('schaltdaten_tv_de')
->select('*')
->join('epgdata_channel', 'schaltdaten_tv_de.cid', '=', 'epgdata_channel.channelid')
->join('mc_spots', 'schaltdaten_tv_de.ReferenceDescription', '=', 'mc_spots.spotid')
->whereIn('ReferenceDescription', $campaignID)
->groupBy('epgdata_2013.id')
->orderBy('StartofBreak', 'ASC')
->limit(500)
->get();
有沒有更方便的方式來做到這一點沒有通過$campaign
每個項目的循環?
您的問題中的代碼只使用Laravel的流利的查詢生成器,而不是雄辯。 –
好的。我編輯了我的問題。 Thx – harunB10
您使用的是什麼版本的Laravel? –