即使列存在,我也会收到列未找到的异常

时间:2018-05-24 14:18:02

标签: java mysql jdbc

我想用Java执行针对MySQL数据库的查询。代码如下所示:

ResultSet resultSet = statement.executeQuery("select col1 from tb1 inner join tb2 on tb1.col2 = tb2.col3 where col4='"+foo+"'");

当我使用shell时查询工作正常,但是当我用Java运行它时它不起作用,因为它说col4不存在。但col4存在。

我刚试过这样的事情;

select col1 from dbname.tb1 as a inner join dbname.tb2 as b on a.col2 = b.col3 where b.col4 = 'foo'

2 个答案:

答案 0 :(得分:0)

你应该用表前缀" tb1"来调用col4。或" tb2"。

例如: 从tb1col2 = tb2.col3上的tb1内连接tb2中选择tb1.col1,其中tb1.col4 = ...

答案 1 :(得分:0)

问题不在那里。我进一步说道:

ResultSet resultSet = statement.executeQuery("select col1 from tb1 inner join tb2 on tb1.col2 = tb2.col3 where col4='"+foo+"'");
myarray.add(resultSet.getString("col4"));//col4 can't exist here because it has not been selected

执行查询后,我想访问一个尚未被选中的列。