Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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
Mysql 在laravel查询生成器中使用或_Mysql_Laravel_Query Builder_Laravel Query Builder - Fatal编程技术网

Mysql 在laravel查询生成器中使用或

Mysql 在laravel查询生成器中使用或,mysql,laravel,query-builder,laravel-query-builder,Mysql,Laravel,Query Builder,Laravel Query Builder,我的表格定义如下 **PURCHASE_PYAMENTS** SELLER MASTER_PAYMENT BILL COUNT_VB PAYMENT_STATUS REMAIN_PARTIAL_AMOUNT abc 15000 0 0 1 0 xyz 14000

我的表格定义如下

**PURCHASE_PYAMENTS**

SELLER      MASTER_PAYMENT      BILL        COUNT_VB        PAYMENT_STATUS      REMAIN_PARTIAL_AMOUNT

abc         15000               0           0               1                   0   
xyz         14000               1           1               1                   14000
abc         15000               0           0               0                   5000
在两种情况下,我需要特定卖方的主付款列的金额,具体如下:

  • payment\u status=1
    count\u vb=0
  • 付款状态=0
    剩余部分金额>0
  • 如果上述任何一个条件变为真,那么
    master\u payment
    应该添加
    sum
    那么,如何使用单个查询实现它呢

    我自己尝试过,但只得到一个条件的结果我的查询如下:

      $total_count_vb = DB::table('purchase_payments')
            ->where('seller',$seller_list)
            ->where('count_vb',0)
            ->where('payment_status',1)
            ->SUM('master_payment');
    
    使用
    where()
    orWhere()
    闭包:

    使用
    where()
    orWhere()
    闭包:

    Payment::where('seller', 'abc')->
           ->where(function ($q) {
               $q->where(function ($q) {
                   $q->where('payment_status', 1)->where('count_vb', 0);
               })
               ->orWhere(function ($q) {
                   $q->where('payment_status', 0)->where('remain_partial_amount', '>', 0);
               });
           });
           ->sum('master_payment');