近期敲代码出现一个匪夷所思的问题,找了半天没找到原因,现在分享出来大家多提提意见
在展示列表功能时,列表挂了一直傻傻的转,后台报了一个原因
于是我去找SQL的问题:如下
SELECT boi.order_item_id,mc.name customerName,cm.name merchantName,
bo.customer_phone mobile,
asd.subject,asd.activity_date,
boi.quantity,boi.item_string,boi.note,boi.pay_type,
FORMAT(boi.consume_begin_time,'yyyy-MM-dd') consume_begin_time,
boi.money,boi.item_status,
bo.order_time,bo.oca_money,bo.cash_money,bo.order_status,
boi.added_user_id,boi.added_time,
(SELECT SUM(IIF(bord.deduct_quantity = NULL,0,bord.deduct_quantity)) FROM starter.dbo.book_order_right_deduct bord WHERE bord.order_item_id = boi.order_item_id ) as deduct_quantity
FROM starter.dbo.book_order_item boi
left JOIN starter.dbo.book_order bo ON bo.order_id = boi.order_id
left JOIN starter.dbo.pd_product_business_map ppbm ON boi.product_id = ppbm.product_id
LEFT JOIN starter.dbo.pd_product pp ON pp.product_id = boi.product_id
left JOIN dbo.mbr_customer_link mcl ON bo.customer_lid = mcl.customer_lid
left JOIN dbo.mbr_customer mc ON mc.customer_id = mcl.customer_id
left JOIN starter.dbo.cms_merchant cm ON cm.merchant_id = boi.merchant_id
LEFT JOIN dbo.activity_schedule_detail asd ON ppbm.ref_business_id = asd.asd_id
WHERE pp.product_category_id = 11 AND bo.order_status = 2 AND boi.is_delete = 0 AND boi.item_status != 1 order by boi.added_time
经过我仔细观察没有问题,在SQLserver里也没有问题,能正常查询,就是写在java代码中就报上面的错,最后我在java代码中的SQL的主表的from前添加了两个@@符号就OK了,虽然不知道原因,但我猜应该是java识别不了子查询的from和主查询的from是哪一个,当我在主表的from前加了两个@@符号,也就是相当于全局的一个变量,java就可以识别了,
不才不知道对不对,但有更好的建议我也可以采纳,不喜勿喷