MySQL 仅从单表中删除记录

标签 mysql sql database

我有两个相互关联的表,我只想从一个表中删除记录。表结构如下

Table : Users
userunique, active, unSubscribed

Table : userBilling
userunique, billCreatedDate,billstatus

我想删除那些不再活跃的用户的账单,条件如下。

billcreateddate < 2011-12-30 
billstatus=2 //pending

active='0'
unSubscribed<'2011-12-30'

我已经写了一个查询,但它不是我所期望的。我只想从 userBilling 表而不是 Users 表中删除记录

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  a
FROM    userBilling a
        INNER JOIN users b
            ON a.auserUnique = b.userUnique
WHERE   billcreateddate < 2011-12-30 OR
        billstatus = 2 OR
        active = 0 OR
        unSubscribed < '2011-12-30'

如果您希望所有条件都为true,请将OR 更改为AND

关于MySQL 仅从单表中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13935674/

相关文章:

sql - 在 oracle 和 mysql 中使用日期格式

sql - postgresql - 将字符串转换为时间

mysql - 如何查看JHipster实体数据库

database - 为什么我的千分尺在应用程序启动后只执行一次?

java - 在MySQL中插入数据时出现 'java.sql.SQLSyntaxErrorException'错误如何解决?

php - 如何同时对多个表使用插入查询?

php - 使用 PHP 和 mySql 从下拉菜单中选择选项

javascript倒计时器与数据库中的sql时间?

sql - 如何在 SQL Server 中备份对称 key ?

mysql - Visual Studio : Create Entity Data Model with remote Mysql database