SQL错误:ORA-00918:列定义不明确
请帮我找出我做错了什么: 从命令中的第1行开始时出错-SQL错误:ORA-00918:列定义不明确,sql,oracle,Sql,Oracle,请帮我找出我做错了什么: 从命令中的第1行开始时出错- CREATE VIEW VW_ROUTE AS SELECT ROUTE_NAME , FARE , DESTINATION , ROUTE_ID , STOP_NAME , TERMINUS , NUMBER_OF_STOPS FROM STOPS S LEFT JOIN ROUTE R ON S.ROUTE_ID = R.
CREATE VIEW VW_ROUTE AS
SELECT ROUTE_NAME
, FARE
, DESTINATION
, ROUTE_ID
, STOP_NAME
, TERMINUS
, NUMBER_OF_STOPS
FROM STOPS S
LEFT JOIN ROUTE R
ON S.ROUTE_ID = R.ROUTE_ID
WHERE NUMBER_OF_STOPS > ('1')
两个表中的列名相同。添加别名
CREATE VIEW VW_ROUTE AS
SELECT ROUTE_NAME
, FARE
, DESTINATION
, S.ROUTE_ID -- ROUTE_ID exists in table STOPS/ROUTE
, STOP_NAME
, TERMINUS
, NUMBER_OF_STOPS
FROM STOPS S
LEFT JOIN ROUTE R
ON S.ROUTE_ID = R.ROUTE_ID
WHERE NUMBER_OF_STOPS > ('1');
最佳做法是在所有事件中使用别名以避免歧义。发布您要加入的表架构。我假设您引用的列存在于两个表中,您需要使用表引用(别名)。+eleventy million用于语句“在所有出现的情况下使用别名以避免歧义”!
CREATE VIEW VW_ROUTE AS
SELECT ROUTE_NAME
, FARE
, DESTINATION
, S.ROUTE_ID -- ROUTE_ID exists in table STOPS/ROUTE
, STOP_NAME
, TERMINUS
, NUMBER_OF_STOPS
FROM STOPS S
LEFT JOIN ROUTE R
ON S.ROUTE_ID = R.ROUTE_ID
WHERE NUMBER_OF_STOPS > ('1');