Как получить идентификаторы на основе промежутка времени, используя MySql - PullRequest
1 голос
/ 31 мая 2019

Я хочу получить идентификатор cubbersId в промежутке времени

Это моя таблица: имя таблицы cubbersavailability

+---------------------------------------+
|cubbersId  |   fromTime    |   toTime   |
+---------------------------------------+
|   1       |   09:30:00    |   18:30:00 |
|   1       |   09:30:00    |   18:30:00 |
|   1       |   09:30:00    |   18:30:00 |
|   1       |   09:30:00    |   12:30:00 |
+----------------------------------------+

В приведенной выше таблице cubbersIsd есть несколько раз.

Условия

  1. Если я выберу fromTime как 10:30:00 и toTime как 12:00:00, то получу последние 1 столбца
  2. Если я выбираю fromTime как 08:30:00 и toTime как 16:00:00, значит не выбирать столбцы
  3. Если я выбираю fromTime как 10:30:00 и toTime как 20:00:00, значит не выбирать столбцы
  4. Если я выбираю fromTime как 08:30:00 и toTime как 20:00:00, значит не выбирать столбцы

Я пробовал этот запрос, но он не поддерживается:

SELECT 
    c.cubbersId, 
    shopAvailTime.fromTime, 
    shopAvailTime.toTime 
FROM cubbers c 
    LEFT JOIN 
        (SELECT * FROM cubbersavailability ca WHERE CAST('08:30:00' as time) < ca.toTime AND CAST('12:00:00' as time) > ca.fromTime ) as shopAvailTime ON (c.cubbersId = shopAvailTime.cubbersId) 
WHERE c.cubbersId = 1

Но это весь список enter image description here

Примечание: этот вопрос уже задавался, но это не помогло моему вопросу;

1 Ответ

1 голос
/ 31 мая 2019
SELECT x.cubbersId
     , x.fromTime
     , x.toTime 
  FROM cubbersavailability x 
 WHERE '08:30:00' >= x.fromTime
   AND '12:00:00' <= x.toTime
   AND x.cubbersId = 1
...