java - 查询从 Access 中的多个表中删除

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

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

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

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

谁能帮我解决这个问题吗?

最佳答案

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

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();

关于java - 查询从 Access 中的多个表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303327/

相关文章:

mysql - 我可以忽略或抑制 JDBC for MySQL 中的警告吗?

java - 使用PreparedStatement在where子句中传递字符串

java - 如何检查您在diplaytag中传递的列表中的数据?

java - 如何在 Gradle 中指定 servlet-api 版本?

python - 写入 MS Access 表,python win32com

ms-access - Access 编程中的最佳实践

java - Tomcat 和 JDBC 连接池

java - 如何在Eclipse中使用Java显示模拟时间?

java - lucene 分数的最大值是多少?

mysql - 决定数据库需求