sql语句

weixin_42104647 2018-04-30 01:55:09
做图书馆座位管理系统 数据库里面有一个开始时间和一个结束时间网页上面用户选择一个开始时间与结束时间 怎么让时间去匹配数据库拿到座位号 前提 座位号可能有重复只是开始时间与结束时间两列不不同 sql语句应该怎么写能查出来当前的空座位 请大神帮忙 想了好几天没想出来
...全文
1347 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
learn2020 2018-05-02
  • 打赏
  • 举报
回复
Create 3 tables: Time Period table: 3 columns(Period_ID, PrStTime, PrEndTime). like: 时间段 序号 入座时间 离座时间 Seat table: 3 columns (Seat_ID, Seat_Location, Seat_Desc) User table: 2 columns (User_ID, User_Name )
weixin_42104647 2018-04-30
  • 打赏
  • 举报
回复
测试比如说 一号座位被 九点到十点 和十二点到一点选了 。另一个同学要匹配时间范围sql语句怎么检索
卖水果的net 2018-04-30
  • 打赏
  • 举报
回复
给出测试数据,和你的预期结果;
mingqing6364 2018-04-30
  • 打赏
  • 举报
回复
你这个问题可以类比12306的售票系统 座位的时间段就是火车停靠的站点 那么接下来假设: 为了简化问题,图书馆选座仅支持整点,并且图书馆开发时间为上午9点(09:00)到晚上10点(22:00) 那么就可以建立一个字典表(表名:时间段),存入入座时间和离座时间,如下
时间段		
序号	入座时间	离座时间
1	9:00	10:00
2	10:00	11:00
3	11:00	12:00
4	12:00	13:00
5	13:00	14:00
6	14:00	15:00
7	15:00	16:00
8	16:00	17:00
9	17:00	18:00
10	18:00	19:00
11	19:00	20:00
12	20:00	21:00
13	21:00	22:00
接下来是座位表
座位		
序号	位置	备注
1	A1区1#	豪华卡座
还有一个就是选座表
选座表		
座位序号	选座时间段序号	选座学生号
1	1	1
1	4	5
那么假设我要查看10:00到12:00空闲的座位,SQL如下:
select DISTINCT
  座位.*
from
  座位,时间段 
	left join 选座表 on 座位.序号 = 选座表.座位序号 AND 选座表.选座时间段序号 = 时间段.序号
where
  时间段.序号 in (2,3)
  and 选座表.座位序号 is null
weixin_42104647 2018-04-30
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
给出测试数据,和你的预期结果;
二楼

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧