2017-01-04 5 views
0

2 개의 테이블이 있습니다. 하나는 이름 목록이 있고 다른 하나는 특정 날짜로 구성됩니다. 세 번째 테이블에 행을 삽입하는 삽입 함수를 생성 할 수 있어야합니다.다중 선택에 의해 생성 된 여러 행 삽입

첫 번째 테이블의 모든 행에 대해 두 번째 테이블의 모든 행을 세 번째 테이블에 삽입해야합니다.

은 테이블 1에 10 개의 행, 테이블 2에 20 개의 행이 있다고 가정합니다. 삽입 함수는 200 행을 삽입 할 수 있어야합니다.

그래서 이름 열에 Mary, John 및 James가있는 테이블이 있고 날짜 열에 2017-01.01, 2017-05-01, 2017-08-08, 2016-12-31이있는 다른 테이블이있는 경우. 세 번째 테이블에 행을 삽입하여 이름 열에 Mary가있는 날짜 열의 모든 행, 이름 열에 John이있는 모든 날짜 등을 삽입 할 수 있도록 삽입 기능이 필요합니다.

이유는 실제로 이름 열에 ca 400 이름이 있고 정확한 열에 따라 날짜 열에 ca 50 날짜가 있다는 것입니다. 나는 이것을 수동으로해야하는 것을 싫어할 것이다.

나는 Google이라고했지만 정확한 검색어가 나오지 않았습니다. 내가가 ...

답변

1

이 쿼리는 당신에게 같은 결과를 얻어야한다, 십자가는 필요하지 않습니다.

INSERT INTO table3 (name, date) 
SELECT table1.name, table2.date 
FROM table1, table2; 
+0

* 절대로 * FROM 절에 쉼표를 사용하지 마십시오. * 항상 * 명시 적'JOIN' 구문을 사용하십시오. –

1

당신은 cross join을 찾고 찾고 있지 않다 답변을 받고 있어요, 내 생각 :

insert into table3 (name, date) 
    select t1.name, t2.date 
    from table1 t1 cross join 
     table2 t2; 
+0

실제로. 나는 크로스 조인에 대한 매뉴얼을 보았고 그것이 내가 찾고있는 것일 수도 있습니다. 나는 결코 십자가에 가입하지 않았습니다. 내가 내일 일하러 돌아갈 때 나는 노력할 것이다. 감사! – Gusmar