2014-10-30 3 views
0

4 테이블의 여러 열이있는 테이블 "USAGEFACT"를 만들려고합니다. 내가 MS 액세스 2013 을 사용하고 내가 오류는 단지 "CREATE TABLE의 구문 오류는"SQL 여러 테이블 및 열에서 테이블 만들기

내가 사용 테이블 (Semester_ID, CLASS_ID)

사실이다입니다.
클래스 (Class_ID, Class_Description).
학기 (Semester_ID, Semester_Description).
학생 (Student_ID, Class_ID).

*이 내가 잘못 다음과 같은 쿼리를 가지고있는 순간이 테이블

유일한 열 수 없습니다 :

create table USAGEFACT as 
(select c.CLASS_DESCRIPTION, s.SEMESTER_DESCRIPTION, st.TYPE, st.SEX 
from FACT, CLASS as c, SEMESTER as s, STUDENT as st 
where FACT.CLASS_ID = c.CLASS_ID 
and s.SEMESTER_ID = FACT.SEMESTER_ID 
and c.CLASS_ID = st.CLASS_ID); 

내가 조인을 사용할 필요가 있음을 우려하고있다. 나는 각각 2 개의 테이블을 포함하는 2 개의 임시 테이블 세트를 만들 수 있다고 생각했다. 그리고 나서 2 개의 다른 테이블에서 각각 생성 된 2 개의 임시 테이블을 결합했다.

감사합니다.

+0

가 왜 그것은 틀린가? 어떤 RDBMS를 사용하고 있습니까? 태그를 추가하십시오. –

+0

액세스 할 때 SELECT INTO를 사용해야합니다. –

+0

하지만 * 읽는 것이 더 힘들지만 * 참여합니다. 테이블을 생성하고 select 문으로 채우는 것에 대한 질문입니다 (필요한 것을 정확하게 출력하는 동안). select 자체에 문제가 있습니까? – keltar

답변

0

MS Access에서 당신이 CREATE TABLE as SELECT하지만 SELECT ... INTO

그래서를 사용할 수 없습니다, 당신의 쿼리를 더 읽을 수에 대한 명시 적 JOIN 표기법을 사용했습니다

이 시도 :

SELECT c.CLASS_DESCRIPTION as CLASS_DESCRIPTION, 
s.SEMESTER_DESCRIPTION as SEMESTER_DESCRIPTION, 
st.[TYPE] as ST_TYPE, st.SEX as SEX 
INTO USAGEFACT 
FROM FACT 
INNER JOIN CLASS as c 
    ON FACT.CLASS_ID = c.CLASS_ID 
INNER JOIN SEMESTER as s 
    ON s.SEMESTER_ID = FACT.SEMESTER_ID 
INNER JOIN STUDENT as st 
    ON c.CLASS_ID = st.CLASS_ID 
+0

INTO 문을 사용하면 테이블이 존재하지 않거나 열이없는 테이블을 만든 다음 INTO 문을 사용하여 이러한 열을 추가해야 할 경우 테이블이 만들어 집니까? –

+0

select into는 select와 같은 create table 명령입니다. 이 문장을 사용하여 c.CLASS_DESCRIPTION, s.SEMESTER_DESCRIPTION, st.TYPE, st.SEX 열이 포함 된 테이블 (USAGEFACT)을 만듭니다. –

+0

조 감사합니다. 솔루션의 "FROM 절에 구문 오류가 있습니다". "FACT"테이블이 열의 관점에서 사용되지 않고 단순히 JOIN에서 호출되기 때문일 수 있습니까? –

관련 문제