sql报错 Can not find owner from table.

业务开发过程中,在sql客户端中执行sql不报错,但是程序运行报了 这样一条sql错误
【怀疑是最新的 spring-boot-mybatis-start 包的问题,因为以前开发中,这种sql没有报错】

###Can not find owner from table. 直译过来是说“无法从表中找到所有者”
Cause: java.lang.IllegalStateException: Can not find owner from table.
image.png

解决后的sql:

SELECT count(0) 
FROM
(SELECT product_id, tenant_id, shop_id, op_account_id, ori_product_id, product_outer_id, platform_type, product_type, product_name, product_full_name, product_catalog, sale_state, sale_state_time, biz_state, biz_type, origin, description, platform_dtb, state, create_time, modified_time 
FROM product_info 
WHERE 1 = 1 AND state = 1 AND biz_state = 1 AND tenant_id = 100000000001 
) AS pp 
LEFT JOIN supply_relation AS s ON pp.product_id = s.product_id 
LEFT JOIN product_group g ON pp.product_id = g.product_id 
WHERE group_id = 1339819076616225
GROUP BY product_id

改动点:
1.pp.tenant_id 搜索条件上移,移到归属在自己的product_info 表的筛选条件里。
2.group_id 去掉left join g表的g的别名

改动原因:【猜测可能原因】
1.从业务上来讲,tenant_id 本身属于product_info表就应该放到自己的字查询的筛选条件里。
2.从sql执行路径来讲,第一条的pp.tenant_id 属于字查询之后创建的临时表的结果。在进过left join之后,这个临时表就不存在了。所以,pp.tenant_id 指向不明。

你可能感兴趣的:(sql报错 Can not find owner from table.)