ORA 00918内部连接在sql中

时间:2013-04-17 21:05:59

标签: sql oracle syntax inner-join

我有这个问题:

select carrier_id, order_id,aircraft_id,quantity 
from orderline 
innerjoin purchaseorder on orderline.order_id = purchaseorder.carrier_id;

我得到了模棱两可的错误,我知道我必须使用别名,但它不起作用,即:

select carrier_id as cID, order_id as OID,aircraft_id,quantity 
from orderline 
innerjoin purchaseorder on orderline.order_id as OID = purchaseorder.carrier_id as cID

它说无效的关系运算符?

感谢你们的帮助:)

2 个答案:

答案 0 :(得分:2)

INNER JOIN中需要一个空格。不是INNERJOIN

  select carrier_id, order_id,aircraft_id,quantity 
 from orderline 
 inner join purchaseorder on orderline.order_id = purchaseorder.carrier_id;

另外,正如另一位回答者所说,您的列可能含糊不清(每个表中的列名相同),因此您需要在列前添加您的表名,即(select orderline.orderid

答案 1 :(得分:1)

问题是,在您执行JOIN之后,您正在选择一些列。其中一些列可能在两个表上都具有相同的名称,您需要指定其中一个:

select P.carrier_id, O.order_id, O.aircraft_id, P.quantity --use the right prefix
from orderline AS O
inner join purchaseorder AS P
on O.order_id = P.carrier_id;