复杂sql(跨库,多表,判断,截取字符串) 附带TP5写法

SELECT
	`so`.`id`,
	`sg`.`title`,
	`sg`.`status`,
	`sg`.`total`,
	`so`.`address`,
	`so`.`ordersn`,
	so.STATUS AS order_status,
	`so`.`paytype`,
	`so`.`dispatchprice`,
	`so`.`goodsprice`,
	`so`.`price`,
	`so`.`expresscom`,
	`so`.`expresssn`,
	`so`.`express`,
	`so`.`createtime`,
	IF ( ifnull( `hc`.`name`, '' ) = '', '自主客户', `hc`.`name`) as customer_name,
-- 	`hc`.`name` as customer_name,
-- 	`hsu`.`username` as staff_name
	IF ( ifnull( `hsu`.`username`, '' ) = '', '总部',`hsu`.`username`) as staff_name
FROM
	`shopoa`.`ims_wshoto_shop_order` `so`
	LEFT JOIN `shopoa`.`ims_wshoto_shop_order_goods` `sog` ON `so`.`id` = `sog`.`orderid`
	LEFT JOIN `shopoa`.`ims_wshoto_shop_goods` `sg` ON `sog`.`goodsid` = `sg`.`id` 
	LEFT JOIN `crm`.`5kcrm_customer` `hc` ON  substring_index(substring_index(`so`.`address`,'mobile";s:11:"',-1),'";s:8:"province',1) = `hc`.phone
	LEFT JOIN `crm`.`5kcrm_system_user` as hsu ON hc.creator = hsu.id
where `hc`.creator = 225 AND `so`.`ordersn` is not null
ORDER BY `so`.`id` DESC LIMIT 0,20
$rows = Db::view('shopoa.ims_wshoto_shop_order so','id as so_id')
            ->view('shopoa.ims_wshoto_shop_order_goods sog','id as sog_id','so.id = sog.orderid','left')
            ->view('shopoa.ims_wshoto_shop_goods sg','id as sg_id','sog.goodsid= sg.id','left')
            ->view('crm.5kcrm_customer hc',"id as hc_id","substring_index(substring_index(so.address,'mobile\";s:11:\"',-1),'\";s:8:\"province',1) = hc.phone",'left')
            ->view('crm.5kcrm_system_user hsu',"id as hsu_id",'hc.creator = hsu.id','left')
            ->order('so.id','DESC')
            ->field([
                $this->field,
                "if( ifnull(`hc`.`name`,'') = '','自主客户',`hc`.`name`) as customer_name",
                "if( ifnull(`hsu`.`username`,'') = '','总部',`hsu`.`username`) as staff_name",
            ])
            ->fetchSql()
            ->where($where)
//            ->where('so.ordersn','not null')
            ->paginate($num)
            ->toArray();

场景及一些参数自己根据情况进行修改整合哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值