SELECT *
FROM Orders
INNER JOIN (select * from customers) as t
ON Orders.CustomerID=t.CustomerID;
当同一个查询尝试在mysql中执行时,它会返回正确的响应。 但是在oracle的情况下,它返回了丢失的关键字异常。
答案 0 :(得分:1)
删除AS
关键字。在Oracle中,您只需要列别名而不是表别名。
此外,内联视图不是必需的,您只需使用table_name customers
。
避免在生产系统中使用*
。如果您有相似的列,请使用SELECT列表中的必需列和正确的别名。
SELECT o.column_list, t.column_list FROM Orders o INNER JOIN customers t ON o.CustomerID = t.CustomerID;
答案 1 :(得分:0)
Oracle SELECT语法在内联视图别名之前不允许使用“AS”关键字,所以
SELECT * FROM Orders INNER JOIN (select * from customers) t ON Orders.CustomerID=t.CustomerID;
而不是(从客户中选择*),您可以使用客户t。