关于access的设计表中 条件 的表达 ,高手请进,谢谢了。

问题:我有两个表格,一个表格“图书目录”,里面有:“书号”,“书名”;另外一个表格“销售账目”,里面有“交易号”,“书号”。我需要没有购买"计算机文化习题与实验"或者"计算机文化基础教程"的交易号。
我的解答:我选择了“销售账本”表格。第一个字段,“交易号”,分组;第二个字段,“书号”,条件,“not in (select 图书目录.书号 from 图书目录 where(((图书目录.书名)="计算机文化基础教程") and ((图书目录.书名)="计算机文化基础习题与实验")))”;第三个字段,“书号”,条件,“In (SELECT 图书目录.书号 FROM 图书目录 WHERE (((图书目录.书名)="计算机文化基础教程")) OR (((图书目录.书名)="计算机文化习题与实验")))”。
我想表达的是没有在这两个的并集,但是在它们的交集里面。最后却是错的,我想知道我是哪里错了?
PS:有的同学这样做,条件是“Not In (SELECT DISTINCT F销售记录.交易号 FROM F销售记录 WHERE ((F销售记录.交易号) AND ((F销售记录.书名)="计算机文化基础习题与实验")))”。
也有同学这样做,条件是“Not In (SELECT 图书目录.书号 FROM 图书目录 WHERE (((图书目录.书名)="计算机文化基础教程")) OR (((图书目录.书名)="计算机文化习题与实验")))”。
这两种哪种正确?分析一下可以么?
非常感谢。打扰了,很抱歉。希望可以有满意的回答 O(∩_∩)O~~,可以加分噢!

第二个字段,“书号”,条件,“not in (select 图书目录.书号 from 图书目录 where(((图书目录.书名)="计算机文化基础教程") and ((图书目录.书名)="计算机文化基础习题与实验")))”
---
这个条件是错的,括号里面是空集,因不可能书名同时为"计算机文化基础教程"和"计算机文化基础习题与实验".整个条件为"not in 空集",即全集

根据德摩根定律,not in (A or B)等同于(not in A) and (not in B),
故正确的写法有两种
Not in (SELECT 图书目录.书号 FROM 图书目录 WHERE 图书目录.书名="计算机文化基础教程" OR 图书目录.书名="计算机文化习题与实验")
或者
Not in (SELECT 图书目录.书号 FROM 图书目录 WHERE 图书目录.书名="计算机文化基础教程") AND Not in (SELECT 图书目录.书号 FROM 图书目录 WHERE 图书目录.书名="计算机文化习题与实验")
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-27
同学,你好。要这样写噢:Not In (select 交易号 from(SELECT DISTINCT 销售账目.交易号
FROM 销售账目
WHERE (((销售账目.书号) In (select 图书目录.书号 from 图书目录 where(((图书目录.书名)="计算机文化基础教程") or((图书目录.书名) ="计算机文化基础习题与实验")))));))本回答被提问者采纳
第2个回答  2011-12-17
select * from 销售账目 1, 图书目录 2 where 1.书号 = 2.书号 and 1.交易号 is null and 2.书名 in (' 计算机文化习题与实验',' 计算机文化基础教程');
第3个回答  2011-12-26
“Not In (SELECT 图书目录.书号 FROM 图书目录 WHERE (((图书目录.书名)="计算机文化基础教程")) OR (((图书目录.书名)="计算机文化习题与实验")))”
注意你的要求是“或者”而不是“和”
相似回答