数据库中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://vmwizqzk.55jiaoyu.com/show-767246.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦
推荐文档
- 11.PDD现在为什么不直播了?
- 12.任尔东西南北风前一句是什么(任尔东西南北风的前一句是啥来)
- 13.广东的一本大学有哪些学校?广东省一本大学名单排名(2023参考)
- 14.江苏南通职业大学(江苏南通职业大学有哪些专业)
- 15.天津高考作文(天津高考作文跑题了能给多少分)
- 16.上海财大录取分数线预测(上海财大录取分数线预测2022是多少分)
- 17.四级成绩什么时候出(四级成绩什么时候出2023年三月份的)
- 18.表达思念爱人的诗成语(表达思念爱人的诗成语有哪些)
- 19.2013会考成绩查询(2013会考成绩查询入口网站官网)
- 20.五年级牛郎织女缩写作文
- 21.简单一点的辞职信5篇
- 22.干警观看交通安全事故警示教育心得五篇
- 23.护理专升本难吗通过率有多大
- 24.图字行书图字书法图片大全(行书七字春联书法欣赏)
- 25.国家税务局山西省电子税务局网上申报系统怎么报税-牛求...(国家税务总局山西省电子税务局报税方法)
- 26.宝玉石鉴定与加工(宝玉石鉴定与加工毕业设计和任务书)
- 27.温情脉脉
- 28.淮北卫校(淮北卫校2023年招生计划)
- 29.cute是什么意思—mule是什么意思
- 30.新产品发布会开幕式致辞范文
- 31.学籍卡有什么用,学籍卡和学生证的区别是什么
- 32.中考体育没考好,可以申请重考吗?如何申请?
- 33.叫我如何不想她,叫我如何不想她赵元任唱
- 34.requires(requirespermissions注解)
- 35.动物医学就业前景(中国农业大学动物医学就业前景)
- 36.39所985大学排名2022最新排名-全国985大学最新排名2022
- 37.遵守教师职业道德情况总结
- 38.财务预算怎么做、财务预算怎么做模板
- 39.OPPO是什么意思OPPO是什么英文的缩写(oppo是什么意思oppo是什么英文的缩写)
- 40.袋鼠简笔画袋鼠简笔画简单又好看(qq红包袋鼠怎么画简笔画)
- 41.广东省教育局官网
- 42.送给兄弟的歌(送给兄弟的歌应该唱什么)
- 43.hd4000相当于什么显卡(笔记本hd4000相当于什么显卡)
- 44.初中毕业想学音乐去哪个学校(没考上高中可以上音乐学校吗)
- 45.985和211通俗易懂的解释
- 46.本科二批是什么意思,本科一批是什么意思
- 47.解放军第四军医大学(解放军第四军医大学录取分数线预测预测)
- 48.黑龙江工程学院邮编_黑龙江工程学院邮政编码查询_附地址和介绍
- 49.瞻仰是什么意思—瞻仰,是什么意思
- 50.现在学什么技术***(现在学什么技术***写不限学历,简单方便)
- 51.形容一个人城府很深的成语(形容一个人城府很深用什么成语)
- 52.傲然挺立的意思是什么(傲然挺立是什么意思解释)
- 53.色厉内荏是什么意思;色厉内荏是什么意思解释词语
- 54.词语解释:避世的意思是什么
- 55.busy是什么意思、bus是什么意思
- 56.天津师范大学是双一流大学吗?有哪些学科入选?
- 57.记一次游戏作文400字四年级上册13篇
- 58.往年安徽阜阳师范大学专升本招生专业汇总!建议收藏
- 59.租房协议书怎么写(租房协议书怎么写才有法律效力)
- 60.拉萨师范高等专科学校(拉萨师范高等专科学校往年录取分数线预测预测)
- 51.2023南昌工程学院中外合作办学分数线(含2021-2022历年)
- 52.2023年黑龙江东方学院新生开学时间-报到需要带什么东西
- 53.郑州双非大学名单有哪些
- 54.湖南环境生物职业技术学院艺术类学费多少钱一年-各专业收费标准
- 55.黔南民族师范学院中外合作办学学费多少钱一年-各专业收费标准
- 56.云南双非大学有哪些 附具体名单一览表
- 57.银川双非大学名单有哪些
- 58.2024上半年湖南教师资格证考试时间
- 59.2024上半年广东教师资格证准考证打印时间及打印入口
- 60.2024上半年宁夏教师资格证报名时间及报名入口
- 61.平邑物流管理学校高铁乘务好不好?有什么招生要求
- 62.加盟吃的项目什么最火
- 63.二十首最棒的励志歌曲推荐
- 64.四川去年读中专学校学费多少钱【供你参考】
- 65.原创 国产手机,止步高端
- 66.泸州化工工程职业技术学校报名学费多少钱
- 67.劳务派遣公司管理制度范文
- 68.四川音乐学院附属中等艺术学校2023年学费多少
- 69.创建文明城市工作总结报告往年十篇
- 70.四川省工业设备安装技工学校招生计划

