gpt4 book ai didi

mysql - 在同一个表上具有多个连接的 Hibernate native 查询返回错误结果

转载 作者:可可西里 更新时间:2023-11-01 06:37:24 24 4
gpt4 key购买 nike

我正在使用 native sql 查询,其中我有一个玩家表,我加入了三次,首先是获取击球手姓名,然后是投球手姓名,然后是外野手姓名。现在第一个连接有效,但接下来的两个也返回相同的名字,即击球手的名字。

这是sql查询

 select 
del.over_no ,
del.delivery_no ,
batsman.sname ,
outType.name ,
outBy.sname ,
fielder.sname ,
bep.runs,
bep.deliveries,
bep.fours,
bep.sixes

from delivery del
INNER JOIN batsman_performance bep ON del.innings_id=bep.innings_id
INNER JOIN ref_player batsman ON del.batsman_id = batsman.id
INNER JOIN ref_player outBy ON del.bowler_id = outBy.id
LEFT OUTER JOIN ref_player fielder ON del.fielder_id1= fielder.id
INNER JOIN ref_out_type outType ON del.out_type_id=outType.id
and del.out_type_id IS NOT NULL
and del.innings_id=:innings_id
and bep.player_id = del.batsman_id
order by over_no, delivery_no;

我没有为选定的列使用别名,因为当我这样做时,hibernate 会为我使用别名的任何列抛出异常

Request processing failed; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query] with root cause java.sql.SQLException: Column 'over_no' not found.

当我在我的 mysql 客户端上运行这个查询并返回正确的数据集时,这个查询是有效的,但是当我在我的代码中运行它时,结果集以某种方式覆盖了 ref_player 表上的两个后续连接,给我留下了所有的击球手名字三列,即 batsman.sname、outBy.sname 和 fielder.sname 列中的相同名称。

过去两天我被困在这里,请提供任何帮助。

最佳答案

尝试将您的 select 包装在另一个 select 语句中,它应该可以工作。我正在使用存储过程,但它应该没有任何区别

SELECT * FROM (

SELECT
del.over_no ,
del.delivery_no ,
batsman.sname ,
outType.name ,
outBy.sname ,
fielder.sname ,
bep.runs,
bep.deliveries,
bep.fours,
bep.sixes

from delivery del
INNER JOIN batsman_performance bep ON del.innings_id=bep.innings_id
INNER JOIN ref_player batsman ON del.batsman_id = batsman.id
INNER JOIN ref_player outBy ON del.bowler_id = outBy.id
LEFT OUTER JOIN ref_player fielder ON del.fielder_id1= fielder.id
INNER JOIN ref_out_type outType ON del.out_type_id=outType.id
and del.out_type_id IS NOT NULL
and del.innings_id=:innings_id
and bep.player_id = del.batsman_id
order by over_no, delivery_no
) AS subselection;

在上面你实际上应该使用别名,否则你将有两个同名的列,这将引发错误

关于mysql - 在同一个表上具有多个连接的 Hibernate native 查询返回错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com