我有兩個相互關聯的表,我想只從一個表中刪除記錄。表結構如下MySQL僅刪除單個表中的記錄
Table : Users
userunique, active, unSubscribed
Table : userBilling
userunique, billCreatedDate,billstatus
我想刪除那些不再活躍的用戶帳單,如下所示。
billcreateddate < 2011-12-30
billstatus=2 //pending
active='0'
unSubscribed<'2011-12-30'
我寫了一個查詢,但它不是我所期望的。我想只刪除用戶帳單表中的記錄,而不是用戶表
select * from userBilling ubill, Users user
WHERE ubilll.userUnique=user.userUnique
AND ubill.billCreatedDate<'2011-12-30'
AND ubill.billstatus = '2'
AND ((user.active = '0') AND (user.unsubscribed>'2011-01-01')
AND user.unSubscribed<'2011-12-30'))
但我猜上面的查詢包含兩個表的結果。請建議!
感謝,
上面的查詢'DELETE's什麼,它只是'SELECT's。 –
你有在這個查詢中返回'billingid'字段嗎?這個查詢是否給你想要刪除的記錄? – jamis0n
假設你的查詢條件沒問題(並且你正在使用'select'只是爲了在調用'delete'之前搜索這些值),你是否檢查過你的表中是否有一些外鍵約束? – Cynical