2015-02-05 2 views
0

"JOIN"명령이있는 테이블에 열을 추가하려고합니다. 하지만 모호성 오류가 계속 :SQL 조인 오류 "모호성"

ORA-00918: column ambiguously defined

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

두 테이블이 선택 목록의 열 중 하나 이상을 포함합니까? –

+0

CUSTOMER_NUM을 CUSTOMER_NAME에 가입시키는 것이 이상하게 보입니다. –

+0

나는 그것을 알아 냈다! ..... 당신의 도움의 사람들에게 감사드립니다! – jgomez61994

답변

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; 
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; 
0

열 이름의 모호성이 보입니다. 두 테이블의 열 이름이 같으면 열을 [tablename].[columnname]으로 작성하십시오. 귀하의 경우 ORDERS.CUSTOMER_NUM 인 경우 Customer_NUMOrders 테이블의 열입니다.

그래서 다음과 같이해야합니다 :

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