mysql查询航班

初始化脚本

CREATE DATABASE /*!32312 IF NOT EXISTS*/`test_db` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test_db`;

DROP TABLE IF EXISTS `cities`;
CREATE TABLE `cities` (
  `mid` int(11) NOT NULL AUTO_INCREMENT,
  `cnty` varchar(20) DEFAULT NULL COMMENT '城市名称',
  PRIMARY KEY (`mid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
insert  into `cities`(`mid`,`cnty`) values (1,'中国'),(2,'日本');

DROP TABLE IF EXISTS `fight`;
CREATE TABLE `fight` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `originating` int(11) DEFAULT NULL COMMENT '始发地',
  `destination` int(11) DEFAULT NULL COMMENT '目的地',
  `start_time` datetime DEFAULT NULL COMMENT '飞行开始时间',
  `end_time` datetime DEFAULT NULL COMMENT '飞行结束时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
insert  into `fight`(`id`,`originating`,`destination`,`start_time`,`end_time`) values (1,1,2,'2018-06-17 22:02:25','2018-06-29 22:02:29'),(2,2,1,'2018-06-24 22:02:25','2018-06-29 22:02:29'),(3,5,4,'2018-06-24 22:02:25','2018-06-29 22:02:29'),(4,1,3,'2018-03-05 22:02:25','2018-06-29 22:02:29');

参考地址:
https://segmentfault.com/q/1010000002479002

查询 中国飞日本的飞机航班,效率低

SELECT * FROM fight,
    (SELECT `MID` FROM cities WHERE cnty='中国') AS tb1,
        (SELECT `MID` FROM cities WHERE cnty='日本') AS tb2
WHERE fight.originating=tb1.mid AND fight.destination=tb2.mid

查询中国

SELECT fight.*,cities.* FROM fight,cities
WHERE fight.originating=cities.mid AND cnty='中国';

查询日本

SELECT fight.*,cities.* FROM fight,cities
WHERE fight.destination=cities.mid AND cnty='日本';

EXISTS 写法

EXPLAIN
    SELECT f1.*,cities.* 
    FROM fight f1,cities
    WHERE f1.originating=cities.mid AND cnty='中国'
AND EXISTS 
(   SELECT f2.*,cities.* FROM fight f2,cities
    WHERE f2.destination=cities.mid AND cnty='日本' AND f1.id=f2.id
)

IN 写法

EXPLAIN
SELECT f1.*,cities.* 
FROM fight f1,cities
WHERE f1.originating=cities.mid AND cnty='中国'
AND f1.id IN 
(   SELECT f2.id FROM fight f2,cities
    WHERE f2.destination=cities.mid AND cnty='日本'
)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本系统查询结果完全和中航信数据同步。完全实时。保证准确无误。说明:本查询系统包括 查询 预订 管理 三部份。可以查询国内。国际航班.包括单程,返程系统特点:1.不是传统的小偷查询。是真正访问中航信数据库。保证数据实时准确2.机票预订功能。查询完成。可以直接预订。管理员后台查看管理3.后台管理强大。可定制航空公司.航空城市.运价管理.常规航位.机型管理.星期.会员管理.燃油附加等等。极大提高了系统灵活性!4.包括国内机票查询。国际机票查询。以及单程.返程查询本版新加功能:1.加入在线支付功能.支持10几家银行。支付更容易。支付完成实时冲值。2.加入国内。国际航班高级查询。国内高级查询:fly_search.asp.国际高级查询:fly_search_ab.asp3.方便为用户冲值。可在后台进行。入款。扣款操作安装步骤============================================运行环境:IIS (虚拟主机,本地。独立服务器都可以) 1.把flight目录放到网站根目录下 确保http://localhost/flight 能正常访问2.注意flight不能改名。否则将不能正常查询3.确保访问地址是http://localhost/flight (查询结果只返回到http://localhost/flight/show.asp)=============================================4.后台登陆页面:system_manage/default.htm 管理初始用户:admin 密码:8888885.后台机票接口基本参数设置的服务器地址,客户ID,MD5值。请不要随意更改。否则将不能正确查询6.数据库目录clientdb/RCclientdb.mdb.为了系统的安全,可自行修改相关设置。如果修改数据库路径及名字。请在conn.asp做相应该修改top.asp 头文件请自行添加更改bottom.asp 尾文件请自行添加更改会员系统:在目录 order/register/ 链接即可 index.asp为注册会员,index.asp为登陆页面。测试会员号:abc 密码:123
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值