Procházet zdrojové kódy

036 修复骑手组详情SQL:MySQL5.7子查询ON不得引用外层别名

selectGroupForRider 的资格 EXISTS 子查询里 JOIN order_checkout_member m ON m.batch_id=b.id
引用外层批次别名,MySQL 5.7 报 Unknown column 'b.id' in 'on clause'(1054);
把关联条件移到子查询 WHERE,内连接语义不变。已在测试库 5.7.44 复现旧错并验证新SQL可执行。
qmj před 2 dny
rodič
revize
6e849d08d6

+ 3 - 1
ruoyi-system/src/main/resources/mapper/system/MultiStoreCheckoutQueryMapper.xml

@@ -177,8 +177,10 @@
                           WHERE live.batch_id=b.id AND lo.state<>4)
               AND #{limitMeters} IS NOT NULL
               AND EXISTS (SELECT 1 FROM info_user u JOIN rider_position p ON p.rider_id=u.user_id
-                          JOIN order_checkout_member m ON m.batch_id=b.id AND m.sort_no=1
+                          <!-- MySQL 5.7 子查询 JOIN ON 不得引用外层别名 b,关联条件放 WHERE。 -->
+                          JOIN order_checkout_member m ON m.sort_no=1
                           JOIN pos_order anchor ON anchor.id=m.pos_order_id
+                          WHERE m.batch_id=b.id
                           WHERE u.user_id=#{riderId} AND u.user_type='2' AND u.status='0'
                             AND u.audit_status='1' AND u.offline='0' AND u.del_flag='0'
                             AND (u.delivery_type IS NULL OR u.delivery_type=''