【发布时间】:2015-12-03 19:52:47
【问题描述】:
SELECT *
FROM Orders
INNER JOIN (select * from customers) as t
ON Orders.CustomerID=t.CustomerID;
当相同的查询尝试在 mysql 中执行时,它会返回正确的响应。 但在 oracle 的情况下,它返回的缺少关键字异常。
【问题讨论】:
标签: sql oracle exception keyword
SELECT *
FROM Orders
INNER JOIN (select * from customers) as t
ON Orders.CustomerID=t.CustomerID;
当相同的查询尝试在 mysql 中执行时,它会返回正确的响应。 但在 oracle 的情况下,它返回的缺少关键字异常。
【问题讨论】:
标签: sql oracle exception keyword
删除 AS 关键字。在 Oracle 中,您只需要 列别名 而不是 表别名。
另外,内嵌视图不是必需的,您可以简单地使用 table_name customers。
避免在生产系统中使用*。如果您有类似的列,请在 SELECT 列表中使用具有适当别名的所需列。
【讨论】:
Oracle SELECT 语法不允许在内联视图别名之前使用 'AS' 关键字,所以
SELECT * FROM Orders INNER JOIN (select * from customers) t ON Orders.CustomerID=t.CustomerID;
你可以只使用 customers t 而不是 (select * from customers) t。
【讨论】: