zoukankan      html  css  js  c++  java
  • mysql 查询

    有个新需求,      

    一张表有两个相同的商品排序信息,不同的是 type值和sort不同,如果有type等于1那就连接type等于一的那条商品信息进行排序,如果没有等于0的那就连排序等于0的进行排序


    下面是代码,亲测有效
    $resultGoods = ProductSales::with('homeGood')
    // ->leftJoin('goods as g','g.goodsId','=','productId')
    ->leftJoin('goods as g',function ($join){
    $join->on('g.goodsId','=','productId')
    ->where('g.goodsStatus','=',1)
    ->where('g.isSale','=',1)
    ->where('g.dataFlag','=',1);
    })
    ->join('good_recommend as gr',function($join){
    $join->on('gr.goods_id','=','g.goodsId')
    ->where(['gr.status'=>0,'gr.type'=>DB::raw("(SELECT DISTINCT CONCAT(IF(EXISTS(SELECT * FROM tgs_good_recommend WHERE goods_id=productId AND TYPE=1 and status=0),1,0)) AS c FROM tgs_good_recommend)")]);
    }, null,null,'left')
    ->where('product_sales.status',1)
    ->where('saleStartDatetime', '>', $saleStarTime)
    ->where('saleStartDatetime', '<=', $endTime)
    ->orderBy('saleEndDatetime', 'desc')
    ->orderBy('sort','desc')
    ->groupBy('productId')
    ->paginate($size, ['productId', 'currentSalesVolume', 'saleStartDatetime', 'saleEndDatetime', 'salesPeriodNumber','g.shopId','gr.sort'], 'page', $page);
  • 相关阅读:
    拓扑排序
    最短路径(Dijkstra,SPFA,Floyd)
    最小生成树(Prim)
    最长公共子序列(DP)(二种数组实现+扩展)
    HDU3068(最长回文串)
    python pip 阿里云内网安装地址
    python matplotlib画图改为可写中文
    win10 安装 basemap
    Liunx 安装basemap
    Docker 命令大全
  • 原文地址:https://www.cnblogs.com/gjclr/p/10250409.html
Copyright © 2011-2022 走看看