tp3.2中三表联查(join和 left join)

这篇博客介绍了在TP3.2框架下如何进行三表联查(JOIN)以及LEFT JOIN操作。通过示例代码展示了如何使用M()模型,设置字段,连接条件,应用WHERE子句,并结合Page类进行分页查询。示例中涉及的表包括orders、user、seller和company,以及LEFT JOIN查询order_goods、orders和goods表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一;join:

            $orders = M('orders');
            $field = 'o.id, o.money, o.pay_type, o.status, o.score_before, o.score_after, o.ctime, u.realname AS username, s.platform AS sellername, c.realname AS companyname';


            


            //$totalRows = $orders->alias('o')->where('o.status > 0 ' . $where)->count('o.id');
            $totalRows = $orders->alias('o')->where($where)->count('o.id');
            


            $page = new \Think\Page($totalRows, $this->limit);


            $maxPages = ceil($totalRows/$this->limit);


            $curr = ($curr > $maxPages) ? $maxPages : $curr;


            $ordersList = $orders
                        ->alias('o')
                        ->field($field)
                        ->join('zbt_user AS u ON o.user_id = u.id')
                        ->join('zbt_seller AS s ON o.seller_id = s.id')
                        ->join('zbt_company AS c ON o.company_id = c.id')
                        //->where('o.status > 0 ' . $where)
                        ->where($where)
                        ->page($curr, $this->limit)
                        ->select();

二: left join

                $order_goods_data= M("order_goods")
                            ->alias('g')
                            ->field('g.*,o.ordercode AS code,o.ctime,o.pay_type AS type,d.unitname AS unit,d.title AS goodsname')
                            ->join('left join zbt_orders AS o ON g.orderid=o.id')
                            ->join('left join zbt_goods AS d ON g.goodsid=d.id')
                            ->where(array("g.storeid"=>$id))
                            ->select();
                //var_dump($order_goods_data);die;
                $this->assign('order_goods_data',$order_goods_data);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值