【问题标题】:MySQL select datetime for expired subscriptionsMySQL为过期订阅选择日期时间
【发布时间】:2015-10-07 05:09:33
【问题描述】:

我有一个名为“订阅”的表,其中包含以下列:

  • 身份证
  • client_id
  • 日期
  • 即将到期

我想选择他们的订阅已过期且没有任何正在进行的订阅的所有值。

例如我在这张表中有这些记录:

标识 |客户 ID |日期 |即将到期
1 | 23 | 2015-07-07 08:26:08 | 2015-07-27 08:26:08
2 | 23 | 2015-07-10 08:26:08 | 2015-07-15 08:26:08
3 | 21 | 2015-07-14 08:26:08 | 2015-07-15 08:26:08

这意味着结果应该向我显示 ID 为 21 的客户,而不是 ID 为 23 的客户,因为他有一个有效的订阅。

希望我解释清楚。

提前致谢

【问题讨论】:

  • 数据库中具有相同 id 的多行...?你能更具体一点,请提供完整和准确的例子吗?
  • 对不起,这是我的错误,每个 id 都是唯一的,例如 1、2、3

标签: php mysql datetime select


【解决方案1】:
SELECT * FROM subscriptions 
WHERE client_id NOT IN (
    SELECT client_id FROM subscriptions 
    WHERE expiring > NOW())

【讨论】:

  • 我试过了,它显示了两个客户...我想排除像 id 23 这样的客户,因为他们有活跃的会员资格
  • @Andr 您的意思是 id=2 应该显示,因为 id=1 不是,并且它们具有相同的 client_id ?如果是这样,只需在此查询中将“id”更改为“client_id”(如此两次)
  • 我的错 :) 确实是 client_id,我刚刚批准了 @Random 编辑
猜你喜欢
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多