尝试获取jdbc中未分组的列时发生异常
我有一个名为test的表,定义如下:尝试获取jdbc中未分组的列时发生异常,jdbc,Jdbc,我有一个名为test的表,定义如下: A bigint(20) NOT NULL B bigint(20) NULL 我正在尝试执行以下准备好的语句: sql = "SELECT * FROM test GROUP BY B"; PreparedStatement preparedStatement = connection.prepareStatement(sql); ResultSet rs = preparedStatement.executeQuery(); 但我有以下例外: Ca
A bigint(20) NOT NULL
B bigint(20) NULL
我正在尝试执行以下准备好的语句:
sql = "SELECT * FROM test GROUP BY B";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
ResultSet rs = preparedStatement.executeQuery();
但我有以下例外:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 'anya_products.test.A' isn't in GROUP BY
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2293)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
完全相同的查询在SQLYog中工作。有什么问题?JDBC限制
谢谢
Udi以下是我的想法。不确定这是最有效的还是唯一的方法,但它似乎至少起了作用:
select test.a, test.b from test
inner join (select b, count(b) from test group by b having count(b) = 1) as c
on test.b = c.b
group by旨在与聚合函数(sum、count、avg等)一起使用。您到底想做什么?你不想改成B点菜吗?不。这并不重要,但假设我想使用have count(b)=1,我建议您使用示例数据集编辑您的问题,以及您希望查询返回的内容。这并不重要。数据并不重要。有一个SQLSyntax异常。由于SQL无效,MySQL不知道您想做什么,我们也不知道。但是如果你不想得到帮助。。。