【问题标题】:Inserting a data in a table that comes from another table [closed]在来自另一个表的表中插入数据[关闭]
【发布时间】: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


【解决方案1】:

如果你把你得到的错误放在上面,那就太好了。我现在可以发现的一个错误是在您的查询语法中,您不能拥有 VALUES,它应该是这样的:

INSERT INTO tbl_temp(name,total,total_late)
SELECT holderName,COUNT(holderName) as tot...

看看here

【讨论】:

    猜你喜欢
    • 2014-09-09
    • 2014-09-09
    • 2020-01-30
    • 2017-01-24
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多