如何使用MySql获取基于中间时间的id

如何使用MySql获取基于中间时间的id,mysql,node.js,select,left-join,Mysql,Node.js,Select,Left Join,我想根据中间时间获得cubbersId 这是我的表:表名 在上表中,Cubbersis有一些时间 条件 如果am选择fromTime为10:30:00,toTime为12:00:00,则表示获取最后1列 如果am选择fromTime为08:30:00,toTime为16:00:00,则表示不选择列 如果am选择fromTime为10:30:00,toTime为20:00:00,则表示不选择列 如果am选择fromTime为08:30:00,toTime为20:00:00,则表示不选择列 我尝试了

我想根据中间时间获得cubbersId

这是我的表:表名

在上表中,Cubbersis有一些时间

条件

如果am选择fromTime为10:30:00,toTime为12:00:00,则表示获取最后1列 如果am选择fromTime为08:30:00,toTime为16:00:00,则表示不选择列 如果am选择fromTime为10:30:00,toTime为20:00:00,则表示不选择列 如果am选择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
但它得到了所有的列表

注意:这个问题已经问过了,但对我的问题没有帮助


我不知道你是否把事情弄得比实际需要的复杂得多。@草莓:把你的联系方式给我。我看不出有什么问题。但是请注意,您的表似乎缺少一个主键,这在适当的时候可能会出现问题。
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
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