pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  1. <legend id='KGmJX'><style id='KGmJX'><dir id='KGmJX'><q id='KGmJX'></q></dir></style></legend>

    <i id='KGmJX'><tr id='KGmJX'><dt id='KGmJX'><q id='KGmJX'><span id='KGmJX'><b id='KGmJX'><form id='KGmJX'><ins id='KGmJX'></ins><ul id='KGmJX'></ul><sub id='KGmJX'></sub></form><legend id='KGmJX'></legend><bdo id='KGmJX'><pre id='KGmJX'><center id='KGmJX'></center></pre></bdo></b><th id='KGmJX'></th></span></q></dt></tr></i><div class="iocsya2" id='KGmJX'><tfoot id='KGmJX'></tfoot><dl id='KGmJX'><fieldset id='KGmJX'></fieldset></dl></div>
    <tfoot id='KGmJX'></tfoot>

      <small id='KGmJX'></small><noframes id='KGmJX'>

        <bdo id='KGmJX'></bdo><ul id='KGmJX'></ul>
    1. Laravel 獲取每個組的最新記錄

      Laravel get latest record for each group(Laravel 獲取每個組的最新記錄)

            <tfoot id='GIjZR'></tfoot><legend id='GIjZR'><style id='GIjZR'><dir id='GIjZR'><q id='GIjZR'></q></dir></style></legend>
          • <small id='GIjZR'></small><noframes id='GIjZR'>

              <tbody id='GIjZR'></tbody>

            • <bdo id='GIjZR'></bdo><ul id='GIjZR'></ul>

                <i id='GIjZR'><tr id='GIjZR'><dt id='GIjZR'><q id='GIjZR'><span id='GIjZR'><b id='GIjZR'><form id='GIjZR'><ins id='GIjZR'></ins><ul id='GIjZR'></ul><sub id='GIjZR'></sub></form><legend id='GIjZR'></legend><bdo id='GIjZR'><pre id='GIjZR'><center id='GIjZR'></center></pre></bdo></b><th id='GIjZR'></th></span></q></dt></tr></i><div class="u2emawq" id='GIjZR'><tfoot id='GIjZR'></tfoot><dl id='GIjZR'><fieldset id='GIjZR'></fieldset></dl></div>

              1. 本文介紹了Laravel 獲取每個組的最新記錄的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                我正在嘗試將一些原始 SQL 遷移到模型上的 Eloquent(或查詢生成器)范圍.我的零件歷史記錄表如下所示:

                I am trying to migrate some Raw SQL to an Eloquent (or Query Builder) scope on my model. My Parts history table looks like this:

                +----+---------+--------+------------+
                | id | part_id | status | created_at |
                +----+---------+--------+------------+
                |  1 |       1 |      1 | ...        |
                |  2 |       1 |      2 | ...        |
                |  3 |       2 |      1 | ...        |
                |  4 |       1 |      2 | ...        |
                |  5 |       2 |      2 | ...        |
                |  6 |       1 |      3 | ...        |
                

                請注意,同一個 part_id 可以有多個狀態相同的條目.

                Notice the same part_id can have multiple entries where the status is the same.

                目前我使用以下選擇最新狀態:

                At the moment I use the following to select the latest status:

                $part = Part::leftjoin( DB::raw("
                 (SELECT t1.part_id, ph.status, t1.part_status_at 
                  FROM (
                    SELECT part_id, max(created_at) part_status_at
                    FROM part_histories
                    GROUP BY part_id) t1 
                  JOIN part_histories ph ON ph.part_id = t1.part_id AND t1.part_status_at = ph.created_at) as t2
                  )", 't2.part_id', '=', 'parts.id')->where( ... )
                

                我正在嘗試在零件模型上制作一個范圍,到目前為止我有這個:

                I am trying to make a scope on the parts model out of this, so far I have this:

                public function scopeWithLatestStatus($query)
                {
                    return $query->join(DB::raw('part_histories ph'), function ($join) {
                         $join->on('ph.part_id', '=', 't1.id')->on('t1.part_status_at', '=', 'ph.created_at');
                      })
                      ->from(DB::raw('(select part_id as id, max(created_at) part_status_at from part_histories GROUP BY part_id) t1'))
                      ->select('t1.id', 'ph.part_status', 't1.part_status_at');
                }
                

                這是其中的一部分(但仍然使用一些原始 SQL),我就是想不通其余的

                which is part way there (but still using some raw SQL), I just can't figure out the rest

                推薦答案

                您可以將查詢重寫為左連接以獲得相同的結果

                You could rewrite your query as left join to get the same results

                select a.* 
                from part_histories a
                left join part_histories b on a.part_id = b.part_id 
                                            and a.created_at < b.created_at
                where b.part_id is null
                

                我猜你可以在你的范圍內輕松轉換上面的查詢,比如

                and I guess you can transform easily above query in your scope something like

                public function scopeWithLatestStatus($query)
                {
                    return $query->leftJoin('part_histories as b', function ($join) {
                                $join->on('a.part_id', '=', 'b.part_id')
                                     ->where('a.created_at', '<', 'b.created_at');
                            })
                        ->whereNull('b.part_id')
                        ->from('part_histories as a')
                        ->select('a.*');
                }
                

                Laravel Eloquent 選擇具有最大值的所有行created_at

                Laravel - 獲取最后一個條目每種 UID 類型

                Laravel Eloquent 按最近記錄分組

                使用上述查詢作為 has 關系進行編輯,要獲取每個部分的最新歷史記錄,您可以定義一個 hasOne 關系,如

                Edit using above query as has relation,To get the latest history for each part you can define a hasOne relation like

                namespace AppModels;
                
                use IlluminateDatabaseEloquentModel;
                use IlluminateSupportFacadesDB;
                class Part extends Model
                {
                    public function latest_history()
                    {
                        return $this->hasOne(AppModelsPartHistory::class, 'part_id')
                            ->leftJoin('part_histories as p1', function ($join) {
                                $join->on('part_histories.part_id', '=', 'p1.part_id')
                                    ->whereRaw(DB::raw('part_histories.created_at < p1.created_at'));
                            })->whereNull('p1.part_id')
                            ->select('part_histories.*');
                    }
                }
                

                然后要加載具有最新歷史記錄的零件,您可以將上面定義的映射加載為

                And then to load parts with their latest history you could eager load above defined mapping as

                $parts = Part::with('latest_history')->get();
                

                您將擁有一份零件清單以及最新的歷史記錄

                You will have a list of parts along with latest history as

                Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [title] => P1
                            [latest_history] => Array
                                (
                                    [id] => 6
                                    [created_at] => 2018-06-16 08:25:10
                                    [status] =>  1
                                    [part_id] => 1
                                )
                
                        )
                ....
                )
                

                這篇關于Laravel 獲取每個組的最新記錄的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                相關文檔推薦

                MySQLi prepared statement amp; foreach loop(MySQLi準備好的語句amp;foreach 循環)
                Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是從整個服務器還是從同一用戶獲取記錄?)
                PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 無法識別登錄信息)
                mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 個參數)
                Php mysql pdo query: fill up variable with query result(Php mysql pdo 查詢:用查詢結果填充變量)
                MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用戶“root@“localhost的訪問被拒絕)

                      <tfoot id='mELlq'></tfoot>
                          <tbody id='mELlq'></tbody>

                        <legend id='mELlq'><style id='mELlq'><dir id='mELlq'><q id='mELlq'></q></dir></style></legend>
                        • <bdo id='mELlq'></bdo><ul id='mELlq'></ul>
                          <i id='mELlq'><tr id='mELlq'><dt id='mELlq'><q id='mELlq'><span id='mELlq'><b id='mELlq'><form id='mELlq'><ins id='mELlq'></ins><ul id='mELlq'></ul><sub id='mELlq'></sub></form><legend id='mELlq'></legend><bdo id='mELlq'><pre id='mELlq'><center id='mELlq'></center></pre></bdo></b><th id='mELlq'></th></span></q></dt></tr></i><div class="qcowsmq" id='mELlq'><tfoot id='mELlq'></tfoot><dl id='mELlq'><fieldset id='mELlq'></fieldset></dl></div>

                          <small id='mELlq'></small><noframes id='mELlq'>

                          主站蜘蛛池模板: 美国PARKER齿轮泵,美国PARKER柱塞泵,美国PARKER叶片泵,美国PARKER电磁阀,美国PARKER比例阀-上海维特锐实业发展有限公司二部 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 南京欧陆电气股份有限公司-风力发电机官网 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 电动液压篮球架_圆管地埋式篮球架_移动平箱篮球架-强森体育 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 低温等离子清洗机(双气路进口)-嘉润万丰 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 嘉兴恒升声级计-湖南衡仪声级计-杭州爱华多功能声级计-上海邦沃仪器设备有限公司 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 自清洗过滤器-全自动自清洗过反冲洗过滤器 - 中乂(北京)科技有限公司 | 学习虾-免费的学习资料下载平台| 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 昆山PCB加工_SMT贴片_PCB抄板_线路板焊接加工-昆山腾宸电子科技有限公司 | 抓斗式清污机|螺杆式|卷扬式启闭机|底轴驱动钢坝|污水处理闸门-方源水利机械 | IPO咨询公司-IPO上市服务-细分市场研究-龙马咨询 | 商标转让-购买商标专业|放心的商标交易网-蜀易标商标网 | 全自动贴标机-套标机-工业热风机-不干胶贴标机-上海厚冉机械 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 合金ICP光谱仪(磁性材料,工业废水)-百科| 背压阀|减压器|不锈钢减压器|减压阀|卫生级背压阀|单向阀|背压阀厂家-上海沃原自控阀门有限公司 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 辊道窑炉,辊道窑炉厂家-山东艾希尔| HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 |