`

Not Exists练习

 
阅读更多
   IF OBJECT_ID(N'a') IS NOT NULL DROP TABLE a
   CREATE TABLE  a
   (id INT NOT NULL,
    NAME VARCHAR(20),
    class VARCHAR(20),
    COUNT INT,
    date DATETIME
   )	
  INSERT INTO a VALUES ('1','苹果','水果',10,'2011-7-1'),('1','桔子','水果',20,'2011-7-2'),('1','香蕉','水果',15,'2011-7-3')
 INSERT INTO a VALUES('2','白菜','蔬菜',12,'2011-7-1'), ('2','青菜','蔬菜',19,'2011-7-2')


如果想要得到下面的结果:(Id唯一,Date选最近的一次)

1   香蕉    水果    15     2011-7-3

2   青菜    蔬菜    19     2011-7-2

语句如下:
SELECT * FROM A  T 
 WHERE   NOT  EXISTS
(SELECT * FROM A WHERE id=t.id AND date>t.date)

注:NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句。
即Exists做为WHERE条件时,是先对where前的主查询进行查询,然后用主查询的结果一个一个的代入exists的子查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出 
分享到:
评论

相关推荐

    数据库作业8:SQL练习5 – SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)

    NOT EXISTS谓词: 若内层查询结果非空,则外层的WHERE子句返回假值;若内层查询结果为空,则外层的WHERE子句返回真值。 由EXISTS引出的子查询,其目标列表达式通常都用 * ,因为带EXISTS的子查询只返回真值或假值,...

    Oracle高级sql学习与练习

    2、EXISTS和NOT EXISTS的使用 3、WITH字句 4、MERGE INFO 合并资料 5、层次查询(HIERARICAL RETRIVEL) 6、DECODE函数和行列互换 7、CASE表达式 8、ROWNUM-TOP-N分析 9、相关子查询和非相关子查询 10、增强GROUP BY...

    数据库的操作练习和讲解

    萨师煊、王珊老师的 (1) select * from teacher where Sname not like '张%' and Sname not like '王%' ... select * from teacher where not exists ( select * from tb where teacher.tid=tb.tid )

    【3.18数据库作业8】SQL练习8 – SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)

    -带有EXISTS谓词的子查询 -集合查询 -基于派生表的查询 -Select总结 下午上次课学到了嵌套查询-3 今天我们来看一下 带有EXISTS谓词的子查询 3/20 15:30 ...NOT EXISTS谓词: 若内层查询结果非空,则外层

    数据库语言的练习5 – SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)(2020.3.18作业)

    EXISTS谓词: ...NOT EXISTS谓词: 若内层查询结果非空,则外层的WHERE子句返回假值 若内层查询结果为空,则外层的WHERE子句返回真值 [例 3.60]查询所有选修了1号课程的学生姓名。 SELECT Sname FROM S

    area.sql.txt

    学习sql练习使用CREATE TABLE IF NOT EXISTS `area` ( `id` int(11) unsigned NOT NULL, `pid` int(11) NOT NULL DEFAULT '0', `name` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' ) ENGINE=InnoDB...

    留言板

    CREATE TABLE IF NOT EXISTS `message` ( `id` int(5) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `n_time` varchar(25) NOT NULL, `author` varchar(30) NOT NULL, `image` varchar(50) DEFAULT...

    数据库精选sql语句练习题 sql语句练习题

    解法二:select tname,depart from teacher a where not exists (select * from course b where a.tno=b.tno); 解法三:SELECT TNAME,DEPART FROM TEACHER WHERE TNO NOT IN (SELECT TNO FROM COURSE); NOT IN的方法...

    MySQL学习笔记(3)——索引练习

    CREATE TABLE IF NOT EXISTS `test`( id int PRIMARY KEY auto_increment, c1 char(10), c2 char(10), c3 char(10), c4 char(10), c5 char(10) ); INSERT INTO test(c1,c2,c3,c4,c5) VALUES ('a1','a2','a3','a4','...

    tatll:香草PHP实现一个URL缩短的。 灯栈

    CREATE TABLE IF NOT EXISTS sessions ( session_id serial, user_id int NOT NULL, date timestamp ); 使用者 CREATE TABLE IF NOT EXISTS users ( user_id serial, email varchar(255) UNIQUE NOT NULL, ...

    blog_oop:只是练习面向对象的编程

    如何开始: 步骤1.... 第2步。相应地进行更改 步骤3.... 步骤4.... 步骤5....步骤6....步骤7.... DROP TABLE IF EXISTS users;...DROP TABLE IF EXISTS categories;...DROP TABLE IF EXISTS posts;...user_email VARCHAR(255) NOT NULL

    SQL21日自学通

    EXISTS ANY ALL 的使用147 总结151 问与答151 校练场152 练习153 第一周回顾154 预览154 第二周概貌155 这一周都讲些什么155 第八天操作数据156 目标156 数据操作语句156 插入语句157 INSERT VALUES 语句157 ...

    SQL语句集锦.rar

    工作中常用的SQL + 超复杂SQL ...not exists用法实例.txt ORACLE编程实用手册.doc patindex的用法.txt rename存储过程.txt replace.txt rowcount.txt rowcount精华.txt stuff.txt substring和rtrim.txt unionall.txt

    go-api:用Golang编写的实践api

    用go编写的简单练习器api ...CREATE TABLE IF NOT EXISTS users ( user_id uuid, username text, name text, email text, phone text, PRIMARY KEY (user_id, username) ) ; 新增使用者 INSERT INTO users (u

    T-SQL电子书包含PPT及学习笔记、课后作业 非常好的sql学习资料

    if exists (select * from sysdatabases where name='stuDB') /*存在就先删除*/ drop database stuDB /*创建数据库*/ create database stuDB /*创建主数据库文件*/ on primary ( name='stuDB_data_1', --数据库逻辑...

    数据库及SQL/MySQL基础(11-22课时)阿里云大学

    创建数据库:CREATE DATABASE [ IF NOT EXISTS ] mydb1 [CHARSET=utf8]; 删除数据库:DROP DATABASE [ IF EXISTS ] mydb1 修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8 数据类型(列类型) int:整型 ...

    数据库实验4-实验报告.doc

    yh print '存在' if not exists(select zgh from xsryb where zgh=@zgh_yh) print '提供的职工号不存在' exec proc_abc @zgh_yh='G11'; declare abc_cursor cursor for select year(xsrq) ,cpb.cph,cpb.cpm ,xsqkb.x...

    sublime-settings

    os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '...

    21天学习SQL V1.0

    21天学习SQL V1.0.pdf 66 SQL 21 日自学通(V1.0) 翻译人笨猪 ...日期/时间函数............................................................................................................ADD_MONTHS..................

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

     本书非常适合Java的初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合Java程序员参考、查阅。 目 录 第1篇 Java语法与面向对象技术 第1章 开发环境的应用 2 1.1 Java环境 3 实例001 下载JDK开发...

Global site tag (gtag.js) - Google Analytics