我尝试使用" JOIN "添加一个列到表中命令。但我一直有一个含糊不清的错误:
ORA-00918:列模糊定义
SELECT ORDER_NUM, CUSTOMER_NUM, ORDER_DATE+20 AS PROMOTION_DATE, CUSTOMER.CUSTOMER_NAME
FROM ORDERS, CUSTOMER
WHERE ORDERS.CUSTOMER_NUM = CUSTOMER.CUSTOMER_NAME;
答案 0 :(得分:2)
如果2个表具有相同名称的列,则需要告诉DB要采用哪个列。您可以通过在列名称前添加表名来完成此操作。
SELECT ORDERS.ORDER_NUM,
CUSTOMER.CUSTOMER_NUM,
ORDERS.ORDER_DATE+20 AS PROMOTION_DATE,
CUSTOMER.CUSTOMER_NAME
FROM ORDERS
JOIN CUSTOMER ON ORDERS.CUSTOMER_NUM = CUSTOMER.CUSTOMER_NAME;
答案 1 :(得分:0)
在select子句中,您将错过列CUSTOMER_NUM
的表别名。
SELECT ORDER_NUM, ORDERS.CUSTOMER_NUM, ORDER_DATE+20 AS PROMOTION_DATE, CUSTOMER.CUSTOMER_NAME
FROM ORDERS, CUSTOMER
WHERE ORDERS.CUSTOMER_NUM = CUSTOMER.CUSTOMER_NAME;
答案 2 :(得分:0)
似乎列名模糊的问题。如果两个表具有相同的列名,则只需将列写为[tablename].[columnname]
。如果ORDERS.CUSTOMER_NUM
是Customer_NUM
表的列。
Orders
所以它应该是这样的:
SELECT ORDERS.ORDER_NUM, ORDERS.CUSTOMER_NUM,ORDERS.ORDER_DATE+20 AS PROMOTION_DATE,CUSTOMER.CUSTOMER_NAME
FROM ORDERS
Inner JOIN CUSTOMER
ON ORDERS.CUSTOMER_NUM = CUSTOMER.CUSTOMER_NAME