语法是否像 derby jdbc 中支持的语法"select field1,field2,field3 from A where (a,b) in (select a,b from B)"?



我曾经在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')

最新更新