设有购买表(顾客号,商品号,购买时间)。现要查询顾客A与顾客B购买的相同商品。有下列查询语句: I.SELECT商品号FROM购买表WHERE顾客号=ˊAˊ AND商品号IN( SELECT商品号FROM购买表WHERE顾客号=ˊBˊ) Ⅱ.SELECT商

admin2021-09-16  60

问题 设有购买表(顾客号,商品号,购买时间)。现要查询顾客A与顾客B购买的相同商品。有下列查询语句:
I.SELECT商品号FROM购买表WHERE顾客号=ˊAˊ
AND商品号IN(
SELECT商品号FROM购买表WHERE顾客号=ˊBˊ)
Ⅱ.SELECT商品号FROM购买表WHERE顾客号=ˊAˊ
EXCEPT
SELECT商品号FROM购买表WHERE顾客号=ˊBˊ
Ⅲ.SELECT商品号FROM购买表WHERE顾客号=ˊAˊ
INTERSECT
SELECT商品号FROM购买表WHERE顾客号=ˊBˊ
Ⅳ.SELECT商品号FROM购买表WHERE顾客号=ˊAˊ
UNION
SELECT商品号FROM购买表WHERE顾客号=ˊBˊ
上述语句中,能够实现该查询要求的是(    )。

选项 A、仅I和Ⅱ
B、仅I和Ⅲ
C、仅I和Ⅳ
D、仅Ⅲ

答案B

解析 SQL中的集合操作符IN、EXCEPT、INTERSECT和UNION的用法分别为:①IN,确定给定的值是否与子查询或列表中的值相匹配,选择与列表中的任意一个值匹配的行;②EXCEPT,指在第一个集合中存在,但是不存在于第二个集合中的数据;③INTERSECT,是指在两个集合中都存在的数据;④UNION,操作符用于合并两个或多个SELECT语句的结果集,对于UNION操作符,请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。要返回A和B相同的商品,则选项Ⅰ中先查出B购买的商品号,并且使用IN操作符,查出A购买的商品号且该商品号同时也在B购买的商品号结果集中,即满足了A和B都购买的商品号,符合要求。选项Ⅱ中的EXCEPT操作符使得查询出的结果为A购买的商品减去B购买的商品,不符合要求。选项Ⅲ的INTERSECT操作符表示两个结果集都存在的商品号,即既属于A又属于B的商品号,符合要求。选项Ⅳ中的UNION操作符表示两个结果集的合并,即包括A购买的商品也包括B购买的商品,不符合要求。
转载请注明原文地址:https://jikaoti.com/ti/xIu7FFFM
0

相关试题推荐
最新回复(0)