【发布时间】:2015-03-24 11:38:35
【问题描述】:
我这里有这个查询:
rs = st.executeQuery("SELECT holderName,COUNT(holderName) as total, SUM(is_late) as total_late FROM (SELECT *,timestampdiff(minute, t1.startTime, t.IOTime) as is_late FROM (SELECT holderName, IODate, MIN(IOTime) as IOTime FROM tbl_records where IOStatus='Entry'AND IODate BETWEEN'"+from+"'AND'"+to+"' GROUP BY holderName, IODate) t JOIN tbl_emp t1 ON t.holderName = t1.name HAVING is_late > 0) AS t2 GROUP BY holderName ORDER BY holderName, IODate");
这将返回 3 个值,我希望它把它放在另一个表中。
我试过这个:
st.executeUpdate("insert into tbl_temp values(null,name,total,total_late) SELECT holderName,COUNT(holderName) as total, SUM(is_late) as total_late FROM (SELECT *,timestampdiff(minute, t1.startTime, t.IOTime) as is_late FROM (SELECT holderName, IODate, MIN(IOTime) as IOTime FROM tbl_records where IOStatus='Entry'AND IODate BETWEEN'"+from+"'AND'"+to+"' GROUP BY holderName, IODate) t JOIN tbl_emp t1 ON t.holderName = t1.name HAVING is_late > 0) AS t2 GROUP BY holderName ORDER BY holderName, IODate");
我在执行插入时出错了!
谢谢!
【问题讨论】:
-
insert中的null是自动递增的
-
希望您能防止 SQL 注入。这是开放的利用。也只是发布你得到的错误。如果我的怀疑是正确的,您只需要删除值语句中的
null,因为您不需要指定自动编号。 -
您遇到什么错误?您应该尝试使用准备好的语句。从结果集中获取数据并将它们作为参数传递给preparedstatement。关注这个link
-
已经解决了!不应该放“价值观”谢谢!
标签: java mysql netbeans-7 wampserver