Java MySQL删除查询,多个内部连接
我想使用主键orderID从数据库中删除一个“订单”。orderID是orderItem中的外键,orderItem在foodItem中有一个名为foodItem的外键,foodItem在菜单中有一个名为menuID的外键 以下是我的疑问: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
"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请将其作为答案发布。@。完成