假设供应商S和供应情况SPJ的关系模式分别为:S(Sno, Sname, Status, City)和SPJ(Sno, Pno, Jno, Qty)。SQL语句______不能正确地查询出“零件号Pno等于’P3’的供应商名Sname”。

admin2013-02-02  30

问题 假设供应商S和供应情况SPJ的关系模式分别为:S(Sno, Sname, Status, City)和SPJ(Sno, Pno, Jno, Qty)。SQL语句______不能正确地查询出“零件号Pno等于’P3’的供应商名Sname”。

选项 A、SELECT DISTINCT Sname          FROM S          WHERE EXISTS         (SELECT*              FROM SPJ                 WHERE S.Sno=SPJ.Sno                   AND SPJ.Pno=’P3’)
B、SELECT DISTINCT Sname          FROM S          WHERERE 0<        (SELECT COUNT (*)           FROM SPJ             WHERE S.Sno=SPJ.Sno               AND SPJ.Pno=’P3’)
C、SELECT Sname          FROM S          WHERE EXISTS        (SELECT*            FROM SPJ            WHERE S.Sno=SPJ.Sno               AND SPJ.Pno=’P3’)
D、SELECT Sname          FROM S, SPJ          WHERE S.Sno=SPJ.Sno             AND SPJ.Pno=’P3’)        GROUP BY Sname

答案A

解析 选项C的含义是:首先从表SPJ中查找零件号Pno为P3的所有记录,然后,通过关联,从S中查找与SPJ中所找出记录的Sno相等的记录。最后,取出该记录中供应商名Sname。这样会出现许多相同的供应商名Sname。所以是错误的。为了解决这个问题,应当加上DISTINCT。第1空的正确答案为选项A。
转载请注明原文地址:https://jikaoti.com/ti/ubL7FFFM
0

最新回复(0)