如何将ID数组从一个Laravel查询传递给另一个

哈伦B10

我有两个来自两个不同表的查询。第一个包含我要在第二个查询中使用的ID。现在,我这样做。我将ID提取到新数组中,然后->whereIn()在第二个查询中使用此数组

$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

萨加尔·豪塔姆(Sagar gautam)

您需要id从第一个查询中检索,这将为您提供ID数组,您可以在第二个查询中使用它。

$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]);
            }
        })

        ->pluck('spotid');

现在,将第二个spot id数组whereIn用作

$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', $campaign)
            ->groupBy('epgdata_2013.id')
            ->orderBy('StartofBreak', 'ASC')
            ->limit(500)
            ->get();

希望你能理解

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将一个数组的元素传递给另一个?

如何将一个表单的 $id 传递给另一个表单

laravel 5.7 如何将一个控制器的变量 id 传递给另一个

如何将ArrayList中的类从一个活动传递给另一个活动

如何将字符串变量从一个函数传递给另一个函数?

如何将值传递给对象表从一个表到另一个?

如何将参数从一个Google应用脚本传递给另一个并执行?

如何将值从一个handlerFunc传递给另一个go-gin

如何将变量从一个函数传递给另一个函数

如何将lambda从一个函数传递给另一个函数作为参数?

如何将值从一个函数传递给另一个函数?

如何将变量值从一个函数传递给另一个函数

如何将变量从一个函数传递给另一个函数?

如何将常量变量从一个组件传递给另一个反应

如何交替地将值从一个数组传递给另一个js

如何将一个PostgreSQL查询的返回值传递给另一个PostgreSQL查询?

如何将所选属性从一个gremlin查询传递到另一个?

如何将唯一ID作为道具传递给另一个组件

Storm:如何将字符串数组从一个螺栓传递到另一个?

如何将数组中的数据从一个vc传递到另一个?

如何将变量从一个类传递到另一个?

如何将ID列表从一个Oracle模式传递到另一个Oracle模式?

如何将ID从一个视图传递到另一个MVC4

如何将Js函数数组传递给另一个Js函数?

如何将数组快速传递给另一个视图控制器?

如何将长数组传递给另一个页面?

如何将realmResult转换为数组并传递给另一个活动?

如何将数组从 api 作为道具传递给另一个组件

如何将数组传递给另一个组件?