【问题标题】:Query to delete from multiple tables in Access查询以从 Access 中的多个表中删除
【发布时间】:2014-06-19 09:32:02
【问题描述】:

我想从 Access 数据库的多个表中删除一行。

这是我尝试在项目中使用的代码,但出现错误。

PreparedStatement ps = con.prepareStatement("DELETE FROM 'customer_details' , 'papers', 'magzines' WHERE 'customer_id' = ? ");   
ps.setString(1,tx1.getText());
int string = ps.executeUpdate();

谁能帮我解决这个问题?

【问题讨论】:

  • 你遇到了什么错误?
  • 您正在为 DELETE 子句提供字符串。删除单引号。

标签: java ms-access jdbc ms-access-2007 ms-access-2010


【解决方案1】:

我刚刚尝试了以下方法,它对我有用:

String sql = 
        "DELETE t1.*, t2.*, t3.* " +
        "FROM " +
            "(" +
                "Table1 AS t1 " +
                "INNER JOIN " +
                "Table2 AS t2 " +
                    "ON t2.ID=t1.ID " +
            ")" +
            "INNER JOIN " +
            "Table3 AS t3 " +
                "ON t3.ID=t2.ID " +
        "WHERE t1.ID=?";
ps = con.prepareStatement(sql);
ps.setInt(1, 4);  // delete where ID=4
int n = ps.executeUpdate();

所以在你的情况下尝试这样的事情:

PreparedStatement ps = con.prepareStatement(
        "DELETE c.*, p.*, m.* " +
        "FROM " +
            "(" +
                "customer_details AS c " +
                "INNER JOIN " +
                "papers AS p " +
                    "ON p.customer_id=c.customer_id " +
            ")" +
            "INNER JOIN " +
            "magzines AS m " +
                "ON m.customer_id=p.customer_id " +
        "WHERE c.customer_id=?");   
ps.setString(1,tx1.getText());
int n = ps.executeUpdate();

【讨论】:

  • fasdfjasfdka dsaf asdf
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
相关资源
最近更新 更多