MySql连表查询,一对多,按照条件取一对一

现在有一个需求,就是在原有商品参数的基础上,增加一个用户的支付状态。

然而用户的支付状态在订单表里面,而且老版本的数据当中,一个人存在多个订单。

也就是说,一个商品可能同时对应支付和未支付两个支付状态,如果用户支付了,当然只能已支付的状态

so...

SELECT 
ins.total_score,pay.pay_status,DATE_FORMAT(ins.inspect_date,'%Y-%m-%d %H:%i:%s')
FROM ins_base ins
INNER JOIN (

SELECT MAX(pay_status) pay_status,inspect_code inspect_code
FROM indent
GROUP BY inspect_code

) pay
ON ins.report_code = pay.inspect_code
WHERE ins.customer_id = 196
ORDER BY ins.inspect_date DESC
LIMIT 0,2

ins_base(商品表)、indent(订单表)

我在商品表与订单表连表的同时,对订单表进行了子查询处理,因为在这个业务里规定,未支付为1,支付为2。

所以我对订单表进行了分组,同时对需要的支付状态字段(pay_status)取最大值。

如上...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你过来啊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值