Oracle查询缺少关键字异常

时间:2015-09-08 08:12:57

标签: sql oracle exception keyword

SELECT *
FROM Orders
INNER JOIN (select * from customers) as t
ON Orders.CustomerID=t.CustomerID;

当同一个查询尝试在mysql中执行时,它会返回正确的响应。 但是在oracle的情况下,它返回了丢失的关键字异常。

2 个答案:

答案 0 :(得分:1)

  1. 删除AS关键字。在Oracle中,您只需要列别名而不是表别名

  2. 此外,内联视图不是必需的,您只需使用table_name customers

  3. 避免在生产系统中使用*。如果您有相似的列,请使用SELECT列表中的必需列和正确的别名。

  4.     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。