数据库中exists的用法
数据库中ests的用法的用法你知道吗?下面小编就跟你们详细介绍下数据库中ests的用法的用法,希望对你们有用。
数据库中ests的用法的用法如下:
ests : 强调的是是否返回结果集,不要求知道返回什么, 比如:
select name from student where sex = 'm' and mark ests(select 1 from grade where ...) ,只要
ests引导的子句有结果集返回,那么ests这个条件就算成立了,大家注意返回的字段始终为1,如果改成“select 2 from grade where ...”,那么返回的字段就是2,这个数字没有意义。所以ests子句不在乎返回什么,而是在乎是不是有结果集返回。
而 ests 与 in 最大的区别在于 in引导的子句只能返回一个字段,比如:
select name from student where sex = 'm' and mark in (select 1,2,3 from grade where ...)
,in子句返回了三个字段,这是不正确的,ests子句是允许的,但in只允许有一个字段返回,在1,2,3中随便去了两个字段即可。
而not ests 和not in 分别是ests 和 in 的 对立面。
ests (sql 返回结果集为真)
not ests (sql 不返回结果集为真)
下面详细描述not ests的过程:
如下:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 2 B2
3 2 B3
表A和表B是1对多的关系 A.ID => B.AID
SELECT ID,NAME FROM A WHERE ESTS (SELECT * FROM B WHERE A.ID=B.AID)
执行结果为
1 A1
2 A2
原因可以按照如下分析
SELECT ID,NAME FROM A WHERE ESTS (SELECT * FROM B WHERE B.AID=1)
--->SELECT * FROM B WHERE B.AID=1有值返回真所以有数据
SELECT ID,NAME FROM A WHERE ESTS (SELECT * FROM B WHERE B.AID=2)
--->SELECT * FROM B WHERE B.AID=2有值返回真所以有数据
SELECT ID,NAME FROM A WHERE ESTS (SELECT * FROM B WHERE B.AID=3)
--->SELECT * FROM B WHERE B.AID=3无值返回真所以没有数据
NOT ESTS 就是反过来
SELECT ID,NAME FROM A WHERE NOT EST (SELECT * FROM B WHERE A.ID=B.AID)
执行结果为
3 A3
===========================================================================
ESTS = IN,意思相同不过语法上有点点区别,好像使用IN效率要差点,应该是不会执行索引的原因
SELECT ID,NAME FROM A WHERE ID IN (SELECT AID FROM B)
NOT ESTS = NOT IN ,意思相同不过语法上有点点区别
SELECT ID,NAME FROM A WHERE ID NOT IN (SELECT AID FROM B)
有时候我们会遇到要选出某一列不重复,某一列作为选择条件,其他列正常输出的情况.
如下面的表table:
Id Name Class Count Date
1 苹果 水果 10 2011-7-1
1 桔子 水果 20 2011-7-2
1 香蕉 水果 15 2011-7-3
2 白菜 蔬菜 12 2011-7-1
2 青菜 蔬菜 19 2011-7-2
如果想要得到下面的结果:(Id唯一,Date选最近的一次)
1 香蕉 水果 15 2011-7-3
2 青菜 蔬菜 19 2011-7-2
正确的SQL语句是:
SELECT Id, Name, Class, Count, Date
FROM table t
WHERE (NOT ESTS
(SELECT Id, Name, Class, Count, Date FROM table
WHERE Id = t.Id AND Date > t.Date))
如果用distinct,得不到这个结果, 因为distinct是作用与所有列的
SELECT DISTINCT Id, Name, Class, Count, Date FROM table
结果是表table的所有不同列都显示出来,如下所示:
1 苹果 水果 10 2011-7-1
1 桔子 水果 20 2011-7-2
1 香蕉 水果 15 2011-7-3
2 白菜 蔬菜 12 2011-7-1
2 青菜 蔬菜 19 2011-7-2
如果用Group by也得不到需要的结果,因为Group by 要和聚合函数共同使用,所以对于Name,Class和Count列要么使用Group by,要么使用聚合函数. 如果写成
SELECT Id, Name, Class, Count, MAX(Date)
FROM table
GROUP BY Id, Name, Class, Count
得到的结果是
1 苹果 水果 10 2011-7-1
1 桔子 水果 20 2011-7-2
1 香蕉 水果 15 2011-7-3
2 白菜 蔬菜 12 2011-7-1
2 青菜 蔬菜 19 2011-7-2
如果写成
SELECT Id, MAX(Name), MAX(Class), MAX(Count), MAX(Date)
FROM table
GROUP BY Id
得到的结果是:
1 香蕉 水果 20 2011-7-3
2 青菜 蔬菜 19 2011-7-2
如果用in有时候也得不到结果,(有的时候可以得到,如果Date都不相同(没有重复数据),或者是下面得到的Max(Date)只有一个值)
SELECT DISTINCT Id, Name, Class, Count, Date FROM table
WHERE (Date IN
(SELECT MAX(Date)
FROM table
GROUP BY Id))
得到的结果是:(因为MAX(Date)有两个值2011-7-2,2011-7-3)
1 桔子 水果 20 2011-7-2
1 香蕉 水果 15 2011-7-3
2 青菜 蔬菜 19 2011-7-2
注意in只允许有一个字段返回
有一种方法可以实现:
SELECT Id, Name, Class, COUNT, Date
FROM table1 t
WHERE (Date =
(SELECT MAX(Date)
FROM table1
WHERE Id = t .Id))
本文地址:http://j4d.55jiaoyu.com/show-767245.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
推荐文档
- 11.高考数学填空题(高中数学题型1000例大题)
- 12.往年宁波高中排名一览表前50最新
- 13.沧州中考成绩查询网站入口往年
- 14.考前送什么礼物最吉利,考试送什么礼物寓意好
- 15.诗中有画画中有诗(诗中有画画中有诗是苏轼对谁的评价)
- 16.goahead的口语意思
- 17.湖南工学院有哪几个校区及校区地址公交站点分别都在
- 18.辽宁中职学校:沈阳市化工学校简介
- 19.安徽全国专科学校排名安徽十大专科学校排名
- 20.初中毕业警校有哪些比较好
- 21.华南农业大学珠江学院教务处,http://www.scauzhujiang.cn/jxky/jwc/
- 22.from是什么意思具体用法有哪些
- 23.开展植树节活动的通知【精华篇】
- 24.教育资讯:古筝一对一一节课大概多少钱,费用是多少
- 25.全国爱眼日宣传标语,关于爱眼的宣传标语(70句)
- 26.寸劲儿是什么意思寸劲儿的解释是什么(东北方言寸劲是什么意思)
- 27.阳西县第二中学(广东省阳江市阳西县第二中学)
- 28.七台河人口数量数据统计,七台河常住人口变化趋势多少
- 29.浙江推荐二本院校排名最新浙江省二本院校排名及分数线
- 30.天津理工大学是双一流大学吗、有哪些学科入选了双一流学科建设名单
- 31.沈阳化工学校中专怎么样?你的专业是什么?
- 32.鞍山一中全国排名第152名辽宁省排名第10名
- 33.大连航运职业技术师范学院3+2五年制大专简章
- 34.云浮往年中考成绩查询入口网站
- 35.往年伊犁师范大学研究生招生专业目录及考试科目
- 36.浙大现在谁的校长_招生要求
- 37.2020年12月英语四级翻译真题及答案解析
- 38.往年铜锅十大品牌排行榜-铜锅哪个牌子好
- 39.2019浙江高考英语试题及答案解析【word精校版】
- 40.大连海事大学为什么不出名,大连海事大学简介
- 41.二十四节气的含义简介详细介绍
- 42.2020年中国音协钢琴考级规定
- 43.三大战役(三大战役中,历时最长、歼敌人数最多的是)
- 44.往年上海杉达学院招生章程
- 45.怎么查看高考分数排名查询方法有哪些
- 46.2023年高考报什么志愿好就业十大热门专业推荐_高考
- 47.葛军,一个令江苏考生欲罢不能的人!葛军为什么会出名
- 48.kb是什么意思-kpi是什么意思
- 49.2018初三毕业歌曲推荐这些歌最适合毕业时候唱
- 50.人物素材摘抄50字,高考议论文万能超级素材人物摘抄
- 51.异地恋情话最暖心祝福语短句三篇
- 52.2023年武汉体育学院体育类招生简章(运动训练、武术与
- 53.宁波二胎补助政策最新消息,宁波二胎奖励政策规定
- 54.快乐大本营最火游戏大全及规则
- 55.高中生16本必读书籍经典名著推荐
- 56.竖条蓝白红是哪国国旗(竖条蓝白红是哪国国旗图案)
- 57.陈述句是什么意思如何使用
- 58.300分左右的公办专科大学往年有哪些院校可报
- 59.scarf是什么意思
- 60.aw是什么牌子
- 51.2023下半年新疆英语四六级准考证打印时间及打印入口
- 52.2023辽宁铁道职业技术学院中外合作办学分数线(含2022年)
- 53.2024上海外国语大学MBA学费多少钱一年?
- 54.2024临沂大学研究生招生计划-各专业招生人数是多少
- 55.2024上半年四川教师资格证准考证打印时间及打印入口
- 56.2024海南热带海洋学院研究生招生计划-各专业招生人数是多少
- 57.2024上半年云南教师资格证报名时间及报名入口
- 58.2023湖南科技职业学院艺术类录取分数线(含2022年)
- 59.2024辽宁石油化工大学MBA学费多少钱一年?
- 60.2023广西交通职业技术学院单招录取分数线
- 61.林俊杰修炼爱情歌词完整版
- 62.甘肃去年读轨道交通学校什么专业最好【供你参考】
- 63.2023年广元读中专选择农产品加工与质量检测专业好就业吗
- 64.成都2023年卫校可以学什么
- 65.四川省孝泉师范学校评价好不好,环境怎么样
- 66.不忘初心牢记使命主题教育收获感悟5篇
- 67.舟山航海学校报名条件、招生要求及招生对象【供你参考】
- 68.邢台英才医学中等专业学校2023年网站网址
- 69.不想读中专学校
- 70.海军第六职业技术学校网站网址

