首页 > 解决方案 > 在 Laravel 中选择列的总和等于固定值的行

问题描述

我想获得一个(或所有)可能的行组合,其中数量列的总和等于 20

这是一个例子:

id quantity
1   11          
2   1           
3   4           
4   12          
5   19          
6   10          
7   3           
8   13          
9   16          
10  14  

我想有更少的行,在这个例子中:

5   19 

2   1

如果不可能,这个也是可以接受的:

5   19 
9   16 

标签: laravellaravel-5eloquent

解决方案


你可以交叉加入表格到它自己!

  $value = DB::table('myTable as t1')->crossJoin('myTable as t2')
            ->select('t1.id as t1Id','t1.quantity as t1Quantity','t2.id as t2Id','t2.quantity as t2Quantity')
            ->whereRaw('t1.quantity+t2.quantity=20')->get();

推荐阅读