여기에 SQL 수수께끼.
phpMyAdmin을 사용하여 기존 테이블의 데이터를 기반으로 빈 테이블을 채우고 싶습니다.
보다 구체적으로, 나는의 데이터를 사용하려는 mark
의 데이터를 생성 attempt
. 마크의 열은 student_number, test_number, attempt_number, question_number 및 답변입니다. 객관식 테스트 분석 도구입니다.
mark (existing)
snum tnum anum qnum answer
----------------------------------------
1 1 1 1 A
1 1 1 2 C
1 1 1 3 D
1 1 2 1 B
1 1 2 2 A
1 1 2 3 C
attempt (to be created)
snum tnum anum period
--------------------------------
1 1 1 2013-1
1 1 2 2013-2
다음과 같이 고유 한 snum, tnum, anum 조합을 얻을 수 있습니다.
SELECT DISTINCT snum, tnum, anum FROM `mark`
이 호출의 결과를 사용하여 필수 삽입 호출을 채우려면 어떻게해야합니까?
INSERT INTO `attempt` (snum,tnum,anum,period) VALUES (:s,:t,:a,"2013-1")
이상적으로는 "2013-"과 anum을 기준으로 기간 값을 자동 완성하고 싶습니다. 이것이 가능하지 않다고 생각하므로 모든 anum=1
값을 선택 하고 기간 값을 하드 코딩 한 다음 각각에 대해 반복합니다 anum
.
감사.
"INSERT INTO SELECT"구문을 사용하십시오.
INSERT INTO 'attempt'(snum,tnum,anum,period) SELECT DISTINCT snum,tnum,anum,CONCAT('2013-',anum) as period FROM mark;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다