Java 如何基于另一个表中的信息从一个表中删除一组行
我有以下两个表格:Java 如何基于另一个表中的信息从一个表中删除一组行,java,mysql,join,Java,Mysql,Join,我有以下两个表格: Orders _id customer note ready OrderTransactions _id orderid(links to orders._id) product quantity 我要做的是删除所有OrderTransactions,这些OrderTransactions的ready等于y 我已经看到了joinmysql语句来实现这一点,但是我不知道如何在下面的mDb.delete语句中实现
Orders
_id
customer
note
ready
OrderTransactions
_id
orderid(links to orders._id)
product
quantity
我要做的是删除所有OrderTransactions,这些OrderTransactions的ready等于y
我已经看到了joinmysql语句来实现这一点,但是我不知道如何在下面的mDb.delete语句中实现这些连接
public OrdersDbAdapter open() throws SQLException {
mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
return this;
}
private static final String ORDERS_CREATE =
"create table orders (_id integer primary key autoincrement, "
+ "customer text not null, note text not null, export text not null);" ;
private static final String ORDERPRODUCTS_CREATE =
"create table orderproducts (_id integer primary key autoincrement, "
+ "orderid integer not null, product text not null, quantity text not null);";
public boolean deleteOrderProductsAllReady(long orderId) {
return mDb.delete(DATABASE_TABLE_ORDERPRODUCTS, ***criteria***, null) > 0;
}
我认为查询应该是这样的:
DELETE ordtran
FROM OrderProducts AS ordtran
INNER JOIN Orders AS ord
ON ordtran.orderid = ord._id
WHERE [ready="y"]
但我不知道如何将其放入上述mDb.delete语法中。您没有将orderproducts表的orderid链接到order的\u id的外键;是故意的吗?另外,为什么主键列的前导下划线是?复合主键确实存在,所以这对问题没有帮助。。。。事务表在哪里?从orderTransactions中删除,其中orderid在select _idfrom orders where ready='y'thoitbk中-我真的不知道如何将sql放入mDb.Delete函数的criteria参数中。这是我的大问题。不,我没有外键,不知道如何实现它。fge-这给了我想要的信息。用级联删除实现外键。谢谢