讨厌的 ORA-00918 带有 IN 函数的 WHERE 函数出错

Pesky ORA-00918 Error on WHERE function with IN function

新手SQL,第一次出门,需要社区的指导!。 我已经研究这个错误一段时间了,还有来自 W3Schools 和论坛的文档……没有骰子!我在两个不同的表上创建对 运行 的查询,COLUMNS 是 selected/identified,对于 TABLES 也是如此,它们之间的 INNER JOIN 设置,以及 IN 的 WHERE 设置。 WHERE/IN 函数是列歧义错误阻碍的地方。

SELECT ORDERLINE.ORDER_ID, ORDERLINE.PRODUCT_ID, 
       PRODUCT.PRODUCT_ID, PRODUCT.PRODUCT_NAME, PRODUCT.PRODUCT_PRICE
FROM ORDERLINE, PRODUCT
       INNER JOIN ORDERLINE ON ORDERLINE.PRODUCT_ID=PRODUCT.PRODUCT_ID
WHERE ORDERLINE.ORDER_ID IN ('1001');

想知道我哪里出错了吗?

你的语法有点不对——你试图 joinorderline table 两次,这导致了你的歧义错误。通常不要在 from 子句中使用逗号。

这应该可以使用单个 join:

SELECT OL.ORDER_ID, OL.PRODUCT_ID, P.PRODUCT_ID, P.PRODUCT_NAME, P.PRODUCT_PRICE 
FROM ORDERLINE OL
    JOIN PRODUCT P ON OL.PRODUCT_ID=P.PRODUCT_ID 
WHERE OL.ORDER_ID IN ('1001');