A-A+
设有购买表(顾客号 商品号 购买时间)。现要查询2012年顾客A购买了但顾客B没有购买的商品
问题详情
设有购买表(顾客号,商品号,购买时间)。现要查询2012年顾客A购买了但顾客B没有购买的商品。有下列查询语句:1.SELECT商品号FROM购买表WHERE YEAR(购买时间)=ˊ2012ˊAND顾客号=ˊA ˊAND商品号NOT IN(SELECT商品号FROM购买表WHERE YEAR(购买时间)=ˊ2012ˊAND顾客号=ˊB ˊ)11.SELECT商品号FROM购买表WHERE YEAR(购买时间)= ˊ2012ˊAND顾客号=ˊAˊEXCEPTSELECT商品号FROM购买表WHERE YEAR(购买时问)= ˊ2012 ˊAND顾客号=ˊBˊ11.SELECT商品号FROM购买表WHERE YEAR(购买时问)= ˊ2012 ˊ AND顾客号=ˊAˊINTERSECTSELECT商品号FROM购买表WHERE YEAR(购买时间)= ˊ2012ˊAND顾客号=ˊBˊIV.SELECT商品号FROM购买表WHERE YEAR(购买时问)= ˊ2012ˊAND顾客号=ˊA ˊUNl0NSELECT商品号FROM购买表WHERE YEAR(购买时间)= ˊ2012ˊAND顾客号=ˊB ˊ上述语句中,能够实现该查询要求的是()。
A.仅Ⅰ和Ⅱ
B.仅Ⅰ和Ⅲ
C.仅Ⅰ和Ⅳ
D.全部请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:A
Ⅲ选项中INTERSECT返回两个集合皆有的数据,该SQL语句返回顾客A和B都购买的商品号,不符合题意;lV选项中的UNION查询出了顾客A购买的商品,通过UNION关键字合并了顾客B没有购买的商品,因此总的视图为顾客A购买的商品和B没有购买的商品总和,不符合要求。Ⅰ、Ⅱ实现的是顾客A购买商品集合与顾客B购买商品集合的差集。因此满足要求的为l和Ⅱ,答案为A。