我有这个问题:
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
它说无效的关系运算符?
感谢你们的帮助:)
答案 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;