【问题标题】:Finding rows that satisfy some date constraints existing in a table查找满足表中存在的某些日期约束的行
【发布时间】:2017-01-27 17:01:05
【问题描述】:

我有一张这样的桌子

CustomerId     serviceID             from                           To
id1           serv1          '2016-01-01 07:22:33'       '2016-01-05 07:22:33'
id1           serv1          '2016-02-21 08:30:10'       '2016-02-27 08:30:10'
id1           serv2          '2016-02-15 18:30:10'       '2016-02-15 19:30:10'
id1           serv3          '2016-02-19 18:30:10'       '2016-02-19 19:30:10'
id1           serv4          '2017-01-01 08:30:10'       '2017-01-01 09:00:10'

地点:

 serv1 = "in Dog Hospital"
 serv2 = "X ray service"
 serv3 = "Recovering meal"

对于报告,我需要找到所有那些暗示“狗”在“狗医院”期间接受该服务的行,即在狗在“狗医院”期间接受的那些服务。 有什么建议吗?

【问题讨论】:

  • where serviceId = 'serv1'??
  • 不,不...狗在住院期间可能正在使用其他服务。即在使用 serv1
  • 对于一只狗,我需要找到他在医院时发生的那些服务......
  • 你有主键吗?
  • 假设有一个名为“Row ID”的字段作为主键

标签: mysql date select


【解决方案1】:

您可以像这样检查 serv1 期间的行数:

select *
from t a
where exists (
    select 1
    from t b
    where serviceId = 'serv1'
    and a.`from` >= b.`from`
    and a.`to` <= b.`to`
);

Demo @ SQLFiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多