这是我的查询:
select o.order_id, p.sub_category, r.reason
from orders o, product p
inner join returns r
on r.order_id=o.order_id
where o.ORDER_DATE ='09/12/2016' ;
我不断收到错误消息:
ORA-OO904 "O"."ORDER_ID": invalid identifier
我不知道我在做什么错。有人可以帮我解决这个问题吗?
该列确实存在于订单表中,我不知道为什么会出现此错误,我尝试删除了where子句
tables
customers
CUSTOMER_ID VARCHAR2(30) NOT NULL
CUSTOMER_NAME VARCHAR2(50)
SEGMENT_NAME VARCHAR2(25)
Orders
ORDER_ID VARCHAR2(30) NOT NULL
ORDER_DATE VARCHAR2(30)
CUSTOMERS_CUSTOMER_ID VARCHAR2(30) NOT NULL
returns
RETURNED VARCHAR2(26)
ORDER_ID VARCHAR2(26) NOT NULL
REASON VARCHAR2(128)
我正在尝试创建一个查询,该查询返回一个集合,其中该集合包含来自3个不同表的列
答案 0 :(得分:3)
不要混合使用旧式和新式联接,而只能使用new联接,这还会显示您缺少联接条件:
select o.order_id, p.sub_category, r.reason
from orders o
join product p on p.order_id = o.order_id
join returns r on r.order_id = o.order_id
where o.ORDER_DATE = '09/12/2016';
由于您尚未显示产品表或它们之间的关系,我猜测是缺少条件了。
(您不应将日期或数字作为字符串存储;为数据使用正确的数据类型... read more。)
对于原始查询,您尝试使用o.order_id
将产品加入退货,但解析器尚不了解旧式的订单加入,因此会出现错误。