关于EXISTS谓词的用法(不能用 NOT EXISTS)

使用EXISTS谓词查询没有讲授课程号为C5的教师姓名、所在系。(一个教师可以讲授多门课程)
请问我下面写的SQL语句错在哪里?查找的结果会有多余的项目。(例如一位教师讲授了C5课程和C7课程,应该说是不在查询结果里面的,可是下面的语句执行的结果却包含了这位教师)
SELECT DISTINCT Tname,Dept
FROM Teacher
WHERE EXISTS
( SELECT *
FROM TC
WHERE Tno=Teacher.Tno AND Cno<>'C5'
);

要把有 C5课程的老师排除在外

SELECT DISTINCT Tname,Dept
FROM Teacher,TC
WHERE tc.Tno =Teacher.Tno and EXISTS
( SELECT *
FROM TC
where Tno not in
(select distinct Tno from tc where Cno='C5')
);
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-21
关于题目,我问壹下,为什么不能用NOT EXISTS?

vfp中sql语句谓词EXISTS的用法
exists 理解为 包含 not exists 理解 不包含 D项 查询条件 使用not exists 子查询条件是 成绩 小于 85 “ 数据查询的结果中 不包含 成绩小于85的数据”所以 D选项正确 [符合问题中 成绩高于或等于 85分 的要求]C项 查询条件 中 只查询到 成绩 大于85 没有包括 85分的 数据 ...

关于EXISTS谓词的用法(不能用 NOT EXISTS)
要把有 C5课程的老师排除在外 SELECT DISTINCT Tname,Dept FROM Teacher,TC WHERE tc.Tno =Teacher.Tno and EXISTS ( SELECT FROM TC where Tno not in (select distinct Tno from tc where Cno='C5'));

请问exists谓词到底怎么用啊?
LS的这个不要用* 要指定某一列 exists和in 的用法完全不一样 1、exists只是判断里面的字句是成立的就执行主句 2、in是字句返回的字段类型要和条件的字段类型一致 所以exists指定的列是什么无关要紧!!!你的写法是没问题 但是具体你是做为一个什么条件来删除此表的数据你没表达清楚~...

sql中的谓词exists的详解是什么?
就是存在的意思。举个常用例子:select a.from 同学录 a where exists (select 1 from 请柬 b where b.姓名=a.姓名)列出同学录中,有请柬的同学的所有信息。

EXISTS 谓词
谓词逻辑提供谓词用于判断命题的真假,EXISTS 谓词作为二阶谓词,输入值为行集合。应用包括:2.1 查询表中不存在的数据。使用 EXISTS 谓词或联结 LEFT JOIN 方法。2.2 肯定 = 双重否定。使用 NOT EXISTS、子查询或 HAVING 子句方法。2.3 集合 VS 谓词。EXISTS 和 HAVING 在集合操作上具有互换性。练...

vfp 中 SQL语句 exists
由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义  2. NOT EXISTS谓词  若内层查询结果非空,则外层的WHERE子句返回假值  若内层查询结果为空,则外层的WHERE子句返回真值 in比较简单我就不说了……...

你真的了解SQL中的EXISTS谓词吗?
使用 EXISTS 与 HAVING 类似,它们都能以集合而非个体操作数据,实现全称量化的功能。NOT EXISTS 的使用需谨慎,它可能导致查询结果不易理解,但性能上有时优于 HAVING。列方向的量化在 SQL 中可用特定谓词实现,如判断所有列值均为特定值。通过筛选质数,使用 EXISTS 实现“除了1和自身以外,不存在能...

请问sql中exists语句的用法问题?
exists 存在判断谓词。子查询和外部查询条件有连接条件,并非恒定返回true,你把连接条件省略掉了,如果去掉那个where条件就是你说的那个推导了。老兄被那种简单的exists使用误导了,建议重新去看下exists谓词的定义和几种常见使用方法,有些exists查询可以用in谓词实现,而某些sql不支持的关系表达式必须用存在...

SQL 中 exists 是怎么回事啊 怎么用啊 老师没讲懂 呵呵 高手都来帮忙...
IF EXISTS (SELECT * FROM SYSDATABASES WHERE NAME = 'TEST')DROP DATABASE 'TEST'该句意思为:在数据库总记录中查找是否已存在名为‘TEST’的数据库,如果存在(IF EXISTS) 则执行DROP操作,呵呵 能理解了吧 按照LZ发的题目来解答的话WHERE NOT EXISTS的意思就是为,“不存在于”子查询返回的...

SQL数据库查询exists和in的用法问题
利用谓词演算转换为:p®q ÛØp∨q 关系式不太好打了就掠过了 select distinct cno from Course where not exists (select from Student,sc where Student.sname like '王%'and sc.sno=student.sno and course.cno=student.cno )这个很久没写了如果错了请见谅。

相似回答
大家正在搜