mysql - 选择满足初始条件而其他条件不满足每行的行

标签 mysql

我目前有以下 SQL 表:

ID (PK) | StartDate           | EndDate             | Trial | AccountID
-------------------------------------------------------------------------
1       | 2014/08/01 00:00:00 | 2014/09/01 00:00:00 | 1     | 1
2       | 2014/09/15 00:00:00 | 2014/10/15 00:00:00 | 0     | 1
3       | 2014/09/16 00:00:00 | 2014/10/16 00:00:00 | 1     | 2

我需要实现的是试用许可证已过期的 AccountID 列表(试用 = 1 且结束日期<现在),但无论结束日期如何,都没有关联的非试用许可证。

在上面的示例中,ID 3 将是唯一返回的 ID,因为 ID 1 已被 ID 2 取代。

我尝试使用许多子查询,但它们似乎变得过大,但仍然不满足要求。

最佳答案

select acountid
from your_table
group by accountid
having sum(trail = 0) = 0
and sum(trail = 1 and enddate < now()) > 0

关于mysql - 选择满足初始条件而其他条件不满足每行的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26451904/

相关文章:

php - 如何选择给定日期期间的最短开始时间和最长结束时间之间的小时差?

mysql - str_replace 用法——创建 CSS/HTML 类的 MYSQL 结果

php - 请求超时 该请求处理时间过长, 'Connection Timeout'

php - 在行列中存储 2 个值(mysql),例如卡片集合中的卡片

PHP eAccelerator 和实时数据

php - 使用 php 构建表单

mysql 子查询错误 [21000][1241] 操作数应包含 1 列

python - mysql不支持缓存sha2密码

javascript - SQL SELECT 和 UPDATE 语法

php - 查找数据库中与最多关键字匹配的记录