我正在做我的家庭作业,并且无法计算出“NOT IN”功能的正确语法。使用类型I嵌套查询的差异问题
该数据库是一个小型保险数据库(运营商,成员,雇主,计划)弥补这项任务。我应该弄清楚“哪些计划没有任何成员订阅?列出PlanID,plnDescription和plnCost(提示:使用带IN NOT子句的嵌套Select语句)。”
这就是我所拥有的写成的现在:
SELECT planid, plndescription, plncost
FROM plans
WHERE planid NOT IN
(SELECT memberno FROM members);
当我运行该查询,我获得选择的响应0行。
当我拿出WHERE语句,我得到如下回应:
PLANID PLNDESCRIPTION PLNCOST
---------------------- ----------------------------------- ----------------
1 Single Basic Medical 72.5
2 2-Party Basic Medical 140
3 Family Basic Medical 225
4 Single SuperMed 110
5 2-Party SuperMed 200
6 Family SuperMed 350
7 Single Dental Only 35
8 Family Dental Only 70
9 Life Only 16.5
10 Single SuperMed with Dental 125
11 2-Party SuperMed with Dental 240
12 Family SuperMed with Dental 425
12 rows selected
我敢肯定,我的错误是在WHERE语句,因为我敢肯定,我用了错误的字段名WHERE语句以及第二个SELECT语句。很感谢任何形式的帮助。
成员表结构:
Name Null Type
------------------------------ -------- -------------
MEMBERNO NOT NULL NUMBER
MBRFIRSTNAME CHAR(35)
MBRLASTNAME CHAR(35)
MBRSTREET CHAR(50)
MBRCITY CHAR(30)
MBRSTATE CHAR(2)
MBRZIP CHAR(10)
MBRPHONENO CHAR(10)
PLANID NUMBER
MBREMAIL CHAR(255)
MBRDATEEFFECTIVE DATE
EMPLOYERID NUMBER
12 rows selected
计划表结构:
Name Null Type
------------------- -------- -------------
PLANID NOT NULL NUMBER
PLNDESCRIPTION CHAR(35)
PLNCOST NUMBER(8,2)
CARRIERID CHAR(4)
4 rows selected
你能提供会员和计划表结构吗? – andr 2010-11-10 09:44:15
特别是,MEMBERS表有一个PLANID列(提示,提示) – 2010-11-10 09:45:49
@andr:[“家庭作业标签,像其他所谓的'meta'标签,现在不鼓励,”](http:// meta。堆栈溢出。com/q/10812)但是,@Jeff,请(一如既往)遵循[通用指南](http://tinyurl.com/so-hints):陈述任何特殊限制,展示迄今为止您尝试的内容,以及询问具体是什么让你感到困惑。 – 2010-11-10 16:55:33