Java MySQL删除查询,多个内部连接

Java MySQL删除查询,多个内部连接,java,mysql,database,Java,Mysql,Database,我想使用主键orderID从数据库中删除一个“订单”。orderID是orderItem中的外键,orderItem在foodItem中有一个名为foodItem的外键,foodItem在菜单中有一个名为menuID的外键 以下是我的疑问: "DELETE FROM orders, orderitem, fooditem, menu " + "USING orders " + &quo

我想使用主键orderID从数据库中删除一个“订单”。orderID是orderItem中的外键,orderItem在foodItem中有一个名为foodItem的外键,foodItem在菜单中有一个名为menuID的外键

以下是我的疑问:

            "DELETE FROM orders, orderitem, fooditem, menu " +
            "USING orders " +
            "INNER JOIN orderitem " +
            "WHERE orderID = " + "'" + orderID + "' " + " AND orders.orderID = orderItem.orderID " +
                    "INNER JOIN foodItem " +
                    "WHERE orderItem.foodItemID = foodItemID.foodItemID " +
                    "INNER JOIN Menu " +
                    "WHERE foodItem.menuID = menu.menuID";
我正在用JAVAFX编写代码。。 我收到的错误是:

原因:java.sql.SQLSyntaxErrorException:您的sql语法有错误;检查与您的MySQL服务器版本对应的手册,以了解第1行“内部连接foodItem WHERE orderItem.foodItemID=foodItemID.foodItemID内部JOI”附近使用的正确语法


你不是在哪里加入
,而是在什么东西上加入
。所以

"DELETE FROM orders, orderitem, fooditem, menu " +
"USING orders " +
"INNER JOIN orderitem " +
"ON orderID = " + "'" + orderID + "' " + " AND orders.orderID = orderItem.orderID " +
"INNER JOIN foodItem " +
"ON orderItem.foodItemID = foodItemID.foodItemID " +
"ON JOIN Menu " +
"ON foodItem.menuID = menu.menuID";
还有这个部分

"ON orderID = " + "'" + orderID + "' " + "

这是一个等待发生的时刻。您应该使用预先准备好的语句。如何使用它们取决于用于连接数据库的库/框架(未指定)。

内部连接在
上,而不是
其中
此外,这与Java无关,您的查询有问题,而不是Java程序。
“WHERE orderID=“+”“+orderID+””
这是一个等待发生的sql注入。请使用准备好的语句。@FedericoklezCulloca请将其作为答案发布。@。完成