0

该查询有效,但我被要求以连接运算符样式重写它。

SELECT pr.ProdName, pr.ProdPrice
FROM Product pr, OrderTbl ord, OrdLine ol, Customer cu
WHERE pr.ProdNo=ol.ProdNo
AND ord.OrdNo=ol.OrdNo
AND cu.CustNo=ord.CustNo
AND cu.CustNo='C2388597'
AND ord.OrdDate BETWEEN '01-Jan-04' AND '31-Jan-04';

我刚开始使用 Oracle,所以我不确定如何。我想我应该使用 INNER JOINS,但我不知道具体如何。有人可以帮我吗?

4

2 回答 2

1

不过,您绝对应该阅读有关连接的信息,但这里是如何将这种交叉连接样式转换为内部连接

SELECT pr.ProdName, pr.ProdPrice
FROM Product pr
 INNER JOIN OrdLine ol ON pr.ProdNo=ol.ProdNo
 INNER JOIN OrderTbl ord ON ord.OrdNo = ol.OrdNo
 INNER JOIN Customer cu ON cu.CustNo=ord.CustNo 
WHERE cu.CustNo='C2388597'
AND ord.OrdDate BETWEEN '01-Jan-04' AND '31-Jan-04';
于 2013-02-03T03:59:24.860 回答
0
SELECT pr.ProdName, pr.ProdPrice
FROM Product pr
 INNER JOIN OrdLine ol ON pr.ProdNo=ol.ProdNo
 INNER JOIN OrderTbl ord ON ord.OrdNo = ol.OrdNo
 INNER JOIN Customer cu ON cu.CustNo=ord.CustNo
WHERE cu.CustNo='C2388597'
AND ord.OrdDate BETWEEN '01-Jan-04' AND '31-Jan-04';

这是供您继续阅读的Joins

于 2013-02-03T04:03:30.263 回答