场景:要显示所有用户的订单数量,没有购买过的显示0.
    使用会员表和订单表进行leftjoin操作,然后使用where条件订单状态为已完成的,where orderstate=’processed’
    最后的结果只显示购买过的用户。

    解决办法
    1 :在上面的基础上查找出购买过的用户的订单,在关联一个会员表,这样就可以显示出所有的用户的订单数量
    2:会员表和订单表进行leftjoin操作,显示出所有用户以及所有用户下的订单。用代码进行数据的过滤

    1. $allBroker为所有的结果;
    2. $allBrokerAndOrder=array();
    3. foreach ($allBroker as $Bkey => $Bvalue) {
    4. if(empty($allBrokerAndOrder[$Bvalue->id]['sumQuantity'])){
    5. // 没有初始值为数字的变量无法进行赋值运算
    6. $allBrokerAndOrder[$Bvalue->id]['sumQuantity'] =0;
    7. }
    8. if($Bvalue->orderState == 'processed'){
    9. $allBrokerAndOrder[$Bvalue->id]['sumQuantity'] += $Bvalue->quantity;
    10. }
    11. $allBrokerAndOrder[$Bvalue->id]['info'] = $Bvalue;
    12. }
    13. echo count($allBrokerAndOrder);
    14. echo '<pre>';
    15. print_r($allBrokerAndOrder);
    16. echo '</pre>';
    17. die;