Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过内部联接从表中获取最大值,但不生成完全输出_Php_Laravel_Max_Inner Join - Fatal编程技术网

Php 通过内部联接从表中获取最大值,但不生成完全输出

Php 通过内部联接从表中获取最大值,但不生成完全输出,php,laravel,max,inner-join,Php,Laravel,Max,Inner Join,这里我想根据报告类型\u id从所有行中获取所有最大日期值 $latest_reports = Filelist::select(DB::raw('s1.*')) ->from('filelists as s1') ->where('s1.access_id','=',$retailer_supplier_id->id) ->j

这里我想根据
报告类型\u id
从所有行中获取所有最大日期值

$latest_reports =  Filelist::select(DB::raw('s1.*'))
                        ->from('filelists as s1')
                        ->where('s1.access_id','=',$retailer_supplier_id->id)
                        ->join(DB::raw('(SELECT id,report_type_id,access_id,MAX(data_date) AS data_date FROM filelists GROUP BY report_type_id) as s2'),
                        function($query) use ($retailer_supplier_id) {
                          $query->on('s1.report_type_id', '=', 's2.report_type_id')
                          ->on('s1.data_date', '=', 's2.data_date');
                        })    
                        ->orderBy('s1.data_date','desc')
                        ->get();
id    access_id   filename      report_type_id    data_date

1       44        filename3            6         2021-04-01

2       44        filename4            6         2021-04-01

3       44        filename5            1         2021-01-01

4       44        filename6            1         2021-01-01

5       44        filename9            4         2021-04-01

6       44        filename10           4         2021-04-01
id    access_id   filename      report_type_id    data_date

1       44        filename3            6         2021-04-01

2       44        filename4            6         2021-04-01

3       44        filename9            4         2021-04-01

4       44        filename10           4         2021-04-01
这是我的表格
文件列表

id    access_id   filename      report_type_id    data_date

1       44        filename1            6         2021-02-01

2       44        filename2            6         2021-01-01

3       44        filename3            6         2021-04-01

4       44        filename4            6         2021-04-01

5       44        filename5            1         2021-01-01

6       44        filename6            1         2021-01-01

7       44        filename7            4         2021-02-01

8       44        filename8            4         2021-01-01

9       44        filename9            4         2021-04-01

10      44        filename10           4         2021-04-01
我希望我的结果是这样的

$latest_reports =  Filelist::select(DB::raw('s1.*'))
                        ->from('filelists as s1')
                        ->where('s1.access_id','=',$retailer_supplier_id->id)
                        ->join(DB::raw('(SELECT id,report_type_id,access_id,MAX(data_date) AS data_date FROM filelists GROUP BY report_type_id) as s2'),
                        function($query) use ($retailer_supplier_id) {
                          $query->on('s1.report_type_id', '=', 's2.report_type_id')
                          ->on('s1.data_date', '=', 's2.data_date');
                        })    
                        ->orderBy('s1.data_date','desc')
                        ->get();
id    access_id   filename      report_type_id    data_date

1       44        filename3            6         2021-04-01

2       44        filename4            6         2021-04-01

3       44        filename5            1         2021-01-01

4       44        filename6            1         2021-01-01

5       44        filename9            4         2021-04-01

6       44        filename10           4         2021-04-01
id    access_id   filename      report_type_id    data_date

1       44        filename3            6         2021-04-01

2       44        filename4            6         2021-04-01

3       44        filename9            4         2021-04-01

4       44        filename10           4         2021-04-01
但我得到的结果是这样的

$latest_reports =  Filelist::select(DB::raw('s1.*'))
                        ->from('filelists as s1')
                        ->where('s1.access_id','=',$retailer_supplier_id->id)
                        ->join(DB::raw('(SELECT id,report_type_id,access_id,MAX(data_date) AS data_date FROM filelists GROUP BY report_type_id) as s2'),
                        function($query) use ($retailer_supplier_id) {
                          $query->on('s1.report_type_id', '=', 's2.report_type_id')
                          ->on('s1.data_date', '=', 's2.data_date');
                        })    
                        ->orderBy('s1.data_date','desc')
                        ->get();
id    access_id   filename      report_type_id    data_date

1       44        filename3            6         2021-04-01

2       44        filename4            6         2021-04-01

3       44        filename5            1         2021-01-01

4       44        filename6            1         2021-01-01

5       44        filename9            4         2021-04-01

6       44        filename10           4         2021-04-01
id    access_id   filename      report_type_id    data_date

1       44        filename3            6         2021-04-01

2       44        filename4            6         2021-04-01

3       44        filename9            4         2021-04-01

4       44        filename10           4         2021-04-01

问题是
report\u-type\u-id
对于值
6
4
总共有4行,而
report\u-type\u-id
对于值
1
2
行,所以我没有得到
report\u-type\u-id
1的值