我正在重构别人几年前编写的一个Java程序,无法与他们联系以找出有关SQL/数据库的任何信息,但是这个查询不起作用(当分别进行两个查询即可)。我知道在没有更多信息的情况下询问很烦人,但目前我没有太多选择。
"SELECT " + CLMHDR + ".POLBRC, "
+ CLMHDR + ".POLTYC, " + CLMHDR + ".POLNOC," + CLMHDR + ".CLTKYC, "
+ POLHDR + ".INCPTP FROM "+ CLMHDR +
"INNER JOIN " + POLHDR + " ON " + CLMHDR + ".CLTKYC = " + POLHDR+ ".CLTKYP"
+ " WHERE POLNOC = "+ polnocSearch
+ " AND POLBRC = '" + polbrcSearch + "'"
+ " AND POLTYC = '" + poltycSearch + "'"
+ " AND DATRPC <= " + claimDate
+ " GROUP BY POLBRC, POLTYC, POLNOC, CLTKYC"
表 CMLHDR 和 POLHDR 确实包含其引用的列,并且 CLTKYC 和 CLTKYP 是每个表中的键。抱歉这些可怕的名字,我们也被困在角色扮演游戏中。
编辑: 起作用的是这样的:
"SELECT POLBRC, POLTYC, POLNOC, CLTKYC FROM "+ CLMHDR
+ " WHERE POLNOC = "+ polnocSearch
+ " AND POLBRC = '" + polbrcSeach + "'"
+ " AND POLTYC = '" + poltycSearch + "'"
+ " AND DATRPC <= " + claimDate
+ " GROUP BY POLBRC, POLTYC, POLNOC, CLTKYC"
接下来是:
"SELECT INCPTP, TRMTHP FROM "+ POLHDR + " WHERE POLNOP = "+ polnocSearch
+ " AND POLBRP = '"+ polbrcSearch+ "' AND POLTYP = '"+ poltycSearch + "'"
但我真的更喜欢立即返回所有数据。
最佳答案
FROM 和 INNER JOIN 子句之间缺少空格:
FROM "+ CLMHDR +
"INNER JOIN
应该是这样的:
FROM "+ CLMHDR +
" INNER JOIN
关于SQL 内连接查询没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14212710/