2012-03-16 99 views
0

我有一个像这样在我的java程序查询 -使用JDBC的子查询?

SELECT * FROM conversation WHERE user_id != 1 AND conversation_id IN 
(SELECT conversation_id FROM conversation WHERE user_id = 1) 

这将返回使用JDBC的结果0行。但是,如果我复制并将其粘贴到phpmyadmin它工作正常。那么,哪里出了问题?

我已经添加了?allowMultiQueries = true到我的jdbc连接字符串,看看是否会有所作为,但它没有。

编辑:

这里是我的桌子的样子。我正在寻找与用户1进行对话的用户的ID。我刚刚注意到我遗漏了!在上面的查询中!=,现在我把它放入。所以有人知道为什么这与phpmyadmin,而不是jdbc?

enter image description here

+0

为什么你不想加入?这当然有效。 – duffymo 2012-03-16 00:36:20

+0

jdbc调用的样子是什么?任何输入或是jdbc中查询的1部分? – dldnh 2012-03-16 00:37:41

+0

您的子查询没有任何意义。它应用与外部查询相同的条件,但与额外查询的开销相同。您不需要为子查询设置allowMultiQueries = true。 – nnichols 2012-03-16 00:39:51

回答

-1

你用相同的凭据,并在JDBC和在phpMyAdmin相同的数据库登录?在那里,做到了这一点 - 被登录到一个不同的(和空的)分贝,并不知道为什么查询失败。

+0

这不是答案。 – Carsten 2012-03-16 00:39:06

+0

@Carsten et al为什么downvote爱?如果OP真正复制/粘贴查询,并且Java或任何SQLExceptions中没有错误,则问题可能不在查询语法中。 – james 2012-03-16 01:04:55