请教个sql语句,

白骨神经 2015-08-18 10:33:45
有3张表,
order订单表:
orderId--订单id


payment支付表:
orderId--订单id(如果为单个订单支付就是xxxxxxxxxxx,多个订单支付就是mxxxxxxxxxxxxxx,对应下表的)
paymethod--支付方法


ordersGroup多订单表(这张表就相当于多订单支付的记录):
groupId--联合订单Id--mxxxxxxxxxxxxxxxxx
orderIds--对应订单id--xxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxx(对应order订单表里的orderId)

刚刚写了个sql,联合order和payment表得到paymethod列,但是突然想到,如果为多订单,payment表的orderId为mxxxxxxxxxx时候,order表里的orderId与payment表的orderId不对应,有什么办法能避免这种情况?求大神帮帮忙
...全文
274 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
白骨神经 2015-08-18
  • 打赏
  • 举报
回复
对的。。。。。。。
  • 打赏
  • 举报
回复
引用 6 楼 ldcr1319 的回复:
[quote=引用 5 楼 shijing266 的回复:] 那这两个表的订单ID有啥关联么?
如果是单订单的支付,两个表的订单id就是一样的,多订单的话就没有。。。。。。。。。[/quote] 那就是说多订单不就查不到了啊
白骨神经 2015-08-18
  • 打赏
  • 举报
回复
引用 5 楼 shijing266 的回复:
[quote=引用 4 楼 ldcr1319 的回复:] [quote=引用 3 楼 shijing266 的回复:] 就看到一堆的o.... select o.order_id,oop.paymethod FROM o2o_orders o , o2o_payments oop where oop.order_id like "%"+o.order_id +"%"
我没说清楚,多订单的话,这个payment表的mxxxxxxxxxxxx与订单表的orderId没关系,,,这个xxxxxxxxxxxxxxxxx都是根据时间,日期,随机数生成的[/quote] 那这两个表的订单ID有啥关联么? [/quote] 如果是单订单的支付,两个表的订单id就是一样的,多订单的话就没有。。。。。。。。。
  • 打赏
  • 举报
回复
引用 4 楼 ldcr1319 的回复:
[quote=引用 3 楼 shijing266 的回复:] 就看到一堆的o.... select o.order_id,oop.paymethod FROM o2o_orders o , o2o_payments oop where oop.order_id like "%"+o.order_id +"%"
我没说清楚,多订单的话,这个payment表的mxxxxxxxxxxxx与订单表的orderId没关系,,,这个xxxxxxxxxxxxxxxxx都是根据时间,日期,随机数生成的[/quote] 那这两个表的订单ID有啥关联么?
白骨神经 2015-08-18
  • 打赏
  • 举报
回复
引用 3 楼 shijing266 的回复:
就看到一堆的o.... select o.order_id,oop.paymethod FROM o2o_orders o , o2o_payments oop where oop.order_id like "%"+o.order_id +"%"
我没说清楚,多订单的话,这个payment表的mxxxxxxxxxxxx与订单表的orderId没关系,,,这个xxxxxxxxxxxxxxxxx都是根据时间,日期,随机数生成的
  • 打赏
  • 举报
回复
就看到一堆的o.... select o.order_id,oop.paymethod FROM o2o_orders o , o2o_payments oop where oop.order_id like "%"+o.order_id +"%"
白骨神经 2015-08-18
  • 打赏
  • 举报
回复
引用 1 楼 shijing266 的回复:
那你就需要写函数去区分了,然后用in 去做筛选 ,或者直接用like去匹配订单,但是这样会效率很低
select o.order_id,oop.paymethod FROM o2o_orders o INNER JOIN o2o_payments oop ON o.order_id=oop.order_id ,帮忙看下怎么改啊,麻烦了
  • 打赏
  • 举报
回复
那你就需要写函数去区分了,然后用in 去做筛选 ,或者直接用like去匹配订单,但是这样会效率很低
uFreeWo 2015-08-18
  • 打赏
  • 举报
回复
引用 10 楼 bjl373842798 的回复:
order orderId 关联 payment 查出单个订单的 order orderId 关联 ordersGroup 查出联合订单的 groupId 来关联payment 查出多个订单的
order orderId 关联 payment 查出单个订单的 orderId =orderId order orderId 关联 ordersGroup.orderIds 包含order.orderId 查出联合订单的 groupId = payment.orderId
uFreeWo 2015-08-18
  • 打赏
  • 举报
回复
order orderId 关联 payment 查出单个订单的 order orderId 关联 ordersGroup 查出联合订单的 groupId 来关联payment 查出多个订单的
最勇敢的鸟 2015-08-18
  • 打赏
  • 举报
回复
这个设计不合理啊,既然商品订单对支付订单,可能是一对一,也可能是多对一,那商品订单里得存支付订单ID,这样才能关联上

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧