问题 单项选择题

设有如下说明,请回答(29)~(35)小题:
有如下3个表:
职员.DBF:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10)
客户.DBF:客户号C(4),客户名C(36),地址C(36),所在城市C(36)
订单.DBF:订单号C(4),客户号C(4),职员号C(3),签订日期D,金额N(6.2)

显示没有签订任何订单的职员信息(职员号和姓名),正确的SQL语句是( )。

A.SELECT 职员.职员号,姓名 FROM 职员 JOIN 订单
ON 订单.职员号=职员.职员号 GROUP BY 职员.职员号 HAVING COUNT(*)=0

B.SELECT 职员.职员号,姓名 FROM 职员 LEFT JOIN 订单
ON 订单.职员号=职员.职员号 GROUP BY 职员.职员号 HAVING COUNT(*)=0

C.SELECT 职员号,姓名 FROM 职员
WHERE 职员号 NOT IN(SELECT 职员号 FROM 订单)

D.SELECT 职员.职员号,姓名 FROM 职员
WHERE 职员.职员号<>(SELECT订单.职员号FROM订单)

答案

参考答案:C

解析: 显示没有签订任何订单的职员信息等价于显示订单表中不存在的职员信息。只有选项C符合查询条件。

解答题
选择题