【问题标题】:ORA 00918 inner join in sqlORA 00918 sql 中的内部连接
【发布时间】:2013-04-17 21:05:58
【问题描述】:

我有这个问题:

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

它说无效的关系运算符?

感谢你们的帮助:)

【问题讨论】:

  • inner join 不是innerjoin

标签: sql oracle syntax inner-join


【解决方案1】:

您的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

【讨论】:

    【解决方案2】:

    问题是在您执行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;
    

    【讨论】:

    • 当我这样尝试时,ORA-00933 命令没有正确结束,在 AS O 下使用 as asterix
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多