gpt4 book ai didi

mysql - myBatis 3 从没有关系的表中查询

转载 作者:行者123 更新时间:2023-11-29 21:56:51 25 4
gpt4 key购买 nike

我有2张 table :带有的表StatementDetails:

    private String detailId;

private BigDecimal tranxlogid;

private String statementId;

带有的表transLog:

    private BigDecimal tranxlogid;

private Date datetime;

然后在StatementDetailsMapper.xml中,我得到了一个查询:

<sql id="Base_Column_List">
DETAIL_ID, TRANXLOGID, STATEMENT_ID, STATEMENT_GEN,
STATEMENT_RECON
</sql>

<select id="reconStmtDetails" resultMap="StmtTranxDetailsResult"
parameterType="java.lang.String">
select
<include refid="Base_Column_List" />
from STATEMENT_DETAILS STD, POST_TRANX PT
where PT.TRANXLOGID=STD.TRANXLOGID
</select>

正如您所见,tranxlogid 没有在两个表之间映射,它只是一个字段。但是,当我执行查询时,出现错误:

The error occurred while setting parameters
Cause: java.sql.SQLSyntaxErrorException: ORA-00918: column ambiguously defined

POST_TRANX PT 似乎无效。

任何想法。谢谢。

最佳答案

@BerndBuffen 说的是真的,错误表明您可能获得两个表中都存在的列(至少 TRANXLOGID),因此 Oracle 不知道要使用哪一个。所以你的 MyBatis Base_Column_List 应该看起来像这样:

<!-- since I don't know which column is from wich table I consider -->
<!-- it to be all from STD -->
<sql id="Base_Column_List">
STD.DETAIL_ID, STD.TRANXLOGID, STD.STATEMENT_ID, STD.STATEMENT_GEN,
STD.STATEMENT_RECON
</sql>

关于mysql - myBatis 3 从没有关系的表中查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33067816/

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