我正在重构几年前由其他人编写的Java程序,无法与他们联系以查找有关SQL /数据库的任何内容,但是此查询不是工作(当分别具有两个查询时不返回任何结果)。我知道没有更多的信息会烦恼,但目前我没有太多选择。SQL Inner Join查询返回没有结果
"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在每个表的键。对于这些可怕的名字感到抱歉,我们也被RPG卡住了。
编辑: 什么工作是这样的:
"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 + "'"
,但我真的很喜欢所有的数据在一次被退回。
此代码看起来很适合[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)。 – Oded
首先打印实际的sql语句并查看是否有错误 – Madhivanan
在缩小WHERE子句的同时尝试声明。它可能确实没有结果。如果它不抛出错误,则不会有结果。如果它确实抛出,谨慎分享? – Jacco