问题 多项选择题

以下是PRODUCT表和SHIPPING COST表的结构:
PRODUCT
---------------------------------
PRODUCT_ID NUMBER(9)
PRODUCT_NAMEVARCHAR2(20)
COSTNUMBER(5, 2)
RETAIL_PRICENUMBER(5, 2)
WEIGHT NUMBER(5, 2)
SHIPPING_COST
---------------------------------
ID NUMBER(9)
LOWWEIGHT NUMBER(5, 2)
HIGHWEIGHT NUMBER(5, 2)
COSTNUMBER(5, 2)
如果需要显示包括了每个产品运输价格(shipping cost)的产品名(product name),而运输价格是通过比较SHIPPING COST表中产品重量的下限和上限来计算的。现在请问,应使用如下查询语句中的哪两个语句

A.SELECT
product_name, cost
FROM

product NATURAL JOIN shipping_cost;
B.SELECT
p.product_name, s.cost
FROM

product p, shipping_cost s
WHERE

p.product_id=s.id(+);
C.SELECT
p.product_name, s.cost
FROM

product p, shipping_cost s
WHERE

p.weight BETWEEN s.lowweight AND s.highweight;
D.SELECT
p.product_name, s.cost
FROM

product p, shipping_cost s
USING

(p.weight, BETWEEN s.lowweight AND s.highweight);
E.SELECT
p.product name.s.cost
FROM

product p JOIN shipping_cost s
ON

(p.weight BETWEEN s.lowweight AND s.highweight);

答案

参考答案:C,E

解析: 这一题是比较复杂的,该题测试对不等连接的熟悉程度。首先仔细阅读本题的要求——运输价格是通过比较SHIPPING COST表中产品重量的下限和上限来计算的,从这一要求可知所需要的连接只能是不等连接,因此选项A和B可以排除。根据有关使用USING子句连接的介绍,选项D也可以排除,因为USING后面只能跟列名。其实,现在结果已经很清楚了,即选项C和E是正确答案。
根据有关不等连接的介绍,可以确定选项C是正确的。根据有关使用ON子句连接的介绍,可以确定选项E也是正确的。

单项选择题
配伍题