引用CSDN论坛上的一个问题,http://bbs.csdn.net/topics/392284590 ,开始思路错误,给了一个错误的答案,然后仔细分析了一下

题目如下:

假设有一个车次1经过5个站,站点1,站点2,站点3,站点4,站点5(另外有一个车次2,经过站点3,站点4,站点6)

有3个座位,座位1,座位2,座位3
有乘客,买了车次1 站点1到站点3的座位1,站点4到站点5的座位1,
站点2到站点4的座位2,站点1到站点2的座位3,站点3到站点5的座位3,
自己确定数据库表的结构

问:怎么查到站点3到站点4的车次信息,它的余票,哪个座位有余票

思路:创建三张表,分别如下

--座位信息表
drop table train_seat;
create table train_seat(
num varchar(6), --车次
seat_num varchar(10),--座位号
primary key(num,seat_num)
);
--站点信息表
drop table train_site;
create table train_site(
num varchar(6), --车次
site varchar(10),--站点
primary key(num,site)
);
----创建序列
create sequence train_order_seq
increment by 1
start with 1
maxvalue 10000
nominvalue
nocache
--订票信息表
drop table train_order;
create table train_order(
id int,
num varchar(6), --车次
site_start varchar(10),--起始站点
site_end varchar(10),--截止站点
isOrder int,--是否预定:0-否,1-是
seat_num varchar(10),--座位号
order_people varchar(10),--预定人
primary key(id)
);

插入数据:

INSERT INTO TRAIN_ORDER (ID, NUM, SITE_START, SITE_END, ISORDER, SEAT_NUM, ORDER_PEOPLE) VALUES (train_order_seq.nextval, '车次1', '1', '3', 1, '1', 'A');
INSERT INTO TRAIN_ORDER (ID, NUM, SITE_START, SITE_END, ISORDER, SEAT_NUM, ORDER_PEOPLE) VALUES (train_order_seq.nextval, '车次1', '4', '5', 1, '1', 'B');
INSERT INTO TRAIN_ORDER (ID, NUM, SITE_START, SITE_END, ISORDER, SEAT_NUM, ORDER_PEOPLE) VALUES (train_order_seq.nextval, '车次1', '2', '4', 1, '2', 'C');
INSERT INTO TRAIN_ORDER (ID, NUM, SITE_START, SITE_END, ISORDER, SEAT_NUM, ORDER_PEOPLE) VALUES (train_order_seq.nextval, '车次1', '1', '2', 1, '3', 'D');
INSERT INTO TRAIN_ORDER (ID, NUM, SITE_START, SITE_END, ISORDER, SEAT_NUM, ORDER_PEOPLE) VALUES (train_order_seq.nextval, '车次1', '3', '5', 1, '3', 'E');INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次1', '1');
INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次1', '2');
INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次1', '3');
INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次1', '4');
INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次1', '5');
INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次2', '3');
INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次2', '4');
INSERT INTO TRAIN_SITE (NUM, SITE) VALUES ('车次2', '6');
INSERT INTO TRAIN_SEAT (NUM, SEAT_NUM) VALUES ('车次1', '1');
INSERT INTO TRAIN_SEAT (NUM, SEAT_NUM) VALUES ('车次1', '2');
INSERT INTO TRAIN_SEAT (NUM, SEAT_NUM) VALUES ('车次1', '3');
INSERT INTO TRAIN_SEAT (NUM, SEAT_NUM) VALUES ('车次2', '1');
INSERT INTO TRAIN_SEAT (NUM, SEAT_NUM) VALUES ('车次2', '2');
INSERT INTO TRAIN_SEAT (NUM, SEAT_NUM) VALUES ('车次2', '3');

查询余票及剩余座位信息:

--查询哪个座位有余票
select A.num,A.seat_num from(
select s1.num,s1.seat_num,o1.id from train_seat s1 left join train_order o1 on s1.num = o1.num and s1.seat_num = o1.seat_num and o1.site_start <=3 and o1.site_end >=4) A
where A.id is null order by A.num
--查询余票数
select A.num,count(*) 余票 from(
select s1.num,s1.seat_num,o1.id from train_seat s1 left join train_order o1 on s1.num = o1.num and s1.seat_num = o1.seat_num and o1.site_start <=3 and o1.site_end >=4) A
where A.id is null group by A.num

Oracle:简单分析火车票余票查询和座位剩余相关推荐

  1. python爬虫实现火车票余票查询

    python爬虫实现火车票余票查询 获取终端输入的命令行参数 重构请求url,解析返回的json数据 获取终端输入的命令行参数 例如:python3 tickets.py -dg 成都 南京 2016 ...

  2. 项目实战一 12306火车票余票查询软件

    1.安装docopt.urllib.requests 2.实现程序基础框架 # -*- coding:utf-8 -*-""" Train tickets query p ...

  3. Python爬虫----12306火车票余票查询器

    12306火车票余票查询器 文章同步更新:http://www.riba2534.cn/?p=305 今天写了一个12306火车票余票查询器的爬虫,在这里记录一下过程. 首先先看一下最终效果: 比如想 ...

  4. 实验楼 python 火车票余票查询

    Python 实现火车票查询工具 核心的几个地方: 1:正则表达式的构建 2:json数据的解析 一.实验简介 当你想查询一下火车票信息的时候,你还在上 12306 官网吗?或是打开你手机里的 APP ...

  5. 12306火车余票查询

    测试地址:http://gengjian.24.lc/japson/123060.htm 调用12306官网的查询接口. 123060.htm 火车票余票查询Demo By Genng.<br& ...

  6. 火车车次查询-余票查询--Api接口

    1.来自12306的火车车次数据 使用12306网站的接口,查询余票.此接口采集自这里.全国火车站代号字典,下载 . 如有转载,请标明来自此出处http://blog.csdn.net/qxs9652 ...

  7. 列车车次查询-余票查询-Api接口

    查接口找到的,分享给大家,希望对大家以后开发有用 火车车次查询-余票查询--Api接口 1.来自12306的火车车次数据 使用12306网站的接口,查询余票.此接口采集自这里.全国火车站代号字典,下载 ...

  8. 火车票查询系统(一)——利用python实现监控12306余票查询

    最近春运高峰,本人从12月开始买过年回家的火车票,然鹅~现实总是那么残酷,放票时间记不住,要么就是不能实时盯着刷票,外面的软件也不知道靠不靠谱,反正是没买到票,所以一怒之下,自己做一个12306余票查 ...

  9. 火车票余票接口和火车票接口查询出来喽

    火车票余票接口 经过本人无数次的尝试终于成功获取到12306官网的余票数据.

最新文章

  1. ASP.NET Core 2 学习笔记(四)依赖注入
  2. vs2008 C++ 没有找到MSVCR90D.dll 问题
  3. Flutter开发之布局-3-center(17)
  4. linux下获取本机的获取内网和外网地址
  5. Service的一些使用
  6. 【风控术语】数字金融反欺诈技术名词表
  7. 一直出现 Enter passphrase for key '/root/.ssh/gitkey12.pub'
  8. VS2010 C++下编译调试MongoDB源码
  9. Algs4-1.4.38 3-sum的初级算法与ThreeSum性能比较
  10. STM32之FSMC-SRAM/NOR原理
  11. PAT乙级(1008 数组元素循环右移问题)
  12. 离婚前一晚是什么心情呢?
  13. Linux 命令(63)—— nm 命令
  14. springboot 前缀_SpringBoot2.x 给Controller的RequestMapping添加统一前缀
  15. python中的怎么用,python中怎么用#号
  16. 计算机一直黑屏,电脑开不了机 一直黑屏 电源灯亮着 在线等
  17. silvaco学习之收敛
  18. 【Unity】OnePieceFTG(五)游戏流程
  19. 遍历vad二叉树来遍历进程里的模块
  20. stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解)

热门文章

  1. STM32F407 USB虚拟双串口
  2. Vue项目改变div大小 实现图标大小选择功能
  3. 解决Arcgis1041安装后 ArcCatalog可以打开而ArcMap打不开报错问题!
  4. PMP必看!能力的提升不止于证书
  5. 如何创建微信公众号, 微网站 以及发多图文消息
  6. 【OpenCV】 级联分类器训练模型
  7. ViewPage解析(二)
  8. Win10回收站清空了怎么恢复?3个简单高效的方法
  9. JS-Ajax(2021-12-10)
  10. 页面加载时让其显示笼罩层与加载等待图片