2014-04-07 9 views
0

나는 두 개의 테이블을 결합하여 새 테이블을 만들려고합니다. 이 두 개의 기존 테이블은 NSFABSTRACTS (FILEID, WORD) 및 CLASS (WORD, ORG)와 같습니다. 새로운 테이블 (FILEID, WORD, ORG)을 생성하려고합니다. 아래 코드는 내 것이지만 오류 메시지가 나타납니다.sql에서 조인 조건을 작성하는 방법은 무엇입니까?

CREATE TABLE TEMP(FILEID, WORD, ORG) AS 
    SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG 
    FROM NSFABSTRACTS JOIN CLASS 
    WHERE NSFABSTRACTS.WORD=CLASS.WORD; 

오류 : Error report: SQL Error: ORA-00905: missing keyword 00905. 00000 - "missing keyword" *Cause:
*Action:
.

또한 select 문 맨 위에 parathesis를 추가하려고했으나 작동하지 않았습니다. 감사.

+1

'JOIN'을 사용할 때 WHERE 절이 아닌 'ON'을 사용하여 조인 조건을 지정해야합니다. –

+0

두 가지 방법으로 만들 수 있습니다 조인 1. 당신이 테이블 이름 사이에 동일한 조건으로 쉼표로 절에서 테이블 이름을 사용할 수있는 절과 같은 : FROM SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG NSFABSTRACTS, 클래스 어디 NSFABSTRACTS.WORD = CLASS.WORD; "가입"와 같은 구문에서 사용 keyworrd 2. 아니면 의해 : SELECT NSFABSTRACTS.WORD가 NSFABSTRACTS FROM NSFABSTRACTS.FILEID, CLASS.ORG 가 NSFABSTRACTS.WORD CLASS.WORD = ON CLASS 가입; –

답변

0

당신은 "가입"과 "을"사용할 필요가 :

CREATE TABLE TEMP(FILEID, WORD, ORG) AS 
    SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG 
    FROM NSFABSTRACTS 
    JOIN CLASS ON NSFABSTRACTS.WORD=CLASS.WORD 

사람들은 때때로 암시, 예를 조인 구문을 사용

CREATE TABLE TEMP(FILEID, WORD, ORG) AS 
    SELECT NSFABSTRACTS.WORD, NSFABSTRACTS.FILEID, CLASS.ORG 
    FROM NSFABSTRACTS, CLASS 
    WHERE NSFABSTRACTS.WORD=CLASS.WORD 

하지만 최근 SQL에서는 권장하지 않습니다. 이 두 가지 형식이 모두 섞여 있었습니까?

관련 문제