讨厌的 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');
想知道我哪里出错了吗?
你的语法有点不对——你试图 join
到 orderline
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');
新手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');
想知道我哪里出错了吗?
你的语法有点不对——你试图 join
到 orderline
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');