我想删除通过查询找到的所有行:的MySQL从1个表中删除,使用多个表
SELECT cart_abandon.*
FROM cart_abandon, cart_product, txn_product, users
WHERE cart_abandon.cartid = cart_product.cartid
AND cart_product.productid = txn_product.productid
AND txn_product.username = users.username
AND users.id = cart_abandon.userid
AND txn_product.txndate >= cart_abandon.abandondate
要记住的一点是,查询在这里使用4个不同的表,但是我只想从1个表中删除行(cart_abandon)。
有没有简单的方法来做到这一点?也许这个:?
DELETE cart_abandon
FROM cart_abandon, cart_product, txn_product, users
WHERE cart_abandon.cartid = cart_product.cartid
AND cart_product.productid = txn_product.productid
AND txn_product.username = users.username
AND users.id = cart_abandon.userid
AND txn_product.txndate >= cart_abandon.abandondate
这有效吗?正确?
我做过了,但实际上我并不清楚,这就是我来到这里的原因...... – 2010-04-14 22:54:10
但是,从我的理解中,我明白了我上面提出的提议查询 - 是正确的吗? – 2010-04-14 22:55:15
看起来你的查询没问题,你使用第一种语法(在FROM之前从表中删除行: DELETE cart_abandon FROM – a1ex07 2010-04-14 22:55:48