我曾经在oracle中编写过类似的查询,当时它是有效的。现在我试着把它放到Derby JDBC的prepareStatement中。
SELECT THREADID,THREADID2,SIMILARITY FROM S WHERE
(THREADID,THREADID2) IN
(
SELECT T1.ID,T2.ID FROM
(
( SELECT T.ID FROM T WHERE T.POSTTYPEID = '1' ORDER BY ANSWERCOUNT DESC FETCH FIRST 200 ROWS ONLY ) AS T1
JOIN
( SELECT T.ID FROM T WHERE T.POSTTYPEID = '1' ORDER BY ANSWERCOUNT DESC FETCH FIRST 200 ROWS ONLY ) AS T2
)
)
结果是我得到的错误如下:
java.sql。sqlsyntaxerroreexception: Syntax error: received "," at line 1, column 78
我检查了代码,这个错误指向(THREADID,THREADID2)部分,是不是JDBC Derby不支持这个?
no
(THREADID,THREADID2) IN
不工作
必须像
那样分开 WHERE THREADID IN ('your condition') OR THREADID2 IN ('your condition')