2013-06-06 5 views
2

MySQL 버전 5.6을 사용하고 있습니다. 두 개의 ID와 날짜를 사용하는 테이블 eventid을 포함하는 테이블 student이 있습니다. 이름이 (WHERE firstname =.., AND lastname=..,) 일 때 두 개의 ID를 삽입하고 싶습니다. 그러나, 나는 하나의 삽입 명령에서 두 행으로부터 id을 취하는 방법을 잘 모른다. 어느 누구도 제발 도와 줄 수 있습니까? 당신이 테이블에 삽입하려는 경우mysql은 다른 테이블의 여러 행에 정보를 삽입합니다.

덕분에, 폴

답변

9

는, 당신은 insert을 사용하고 싶습니다. 다른 테이블 또는 쿼리에서 데이터를 가져 오려면 insert . . . select 양식이 필요합니다. 이름의 일치 (하지만 같은 ID가없는) 곳

insert into event(id1, id2, date) 
    select s1.id, s2.id, now() 
    from student s1 cross join 
     student s2 
    where s1.id <> s2.id and 
      s1.firstname = firstname and s1.lastname = lastname and 
      s2.firstname = firstname and s2.lastname = lastname; 

그것은 학생의 모든 쌍을 반환 : 당신이 무슨 말에서

, 이것은 당신이 원하는 뭔가를 보인다.

+0

이것은 내가 모호한 질문으로 인해 요청한 것이 아닙니다. 그러나 나는 그것에서 일하고 나가 원하는 것을 얻었다. 정말 고마워요! – verticese

+0

한 가지 더 질문 : 나는 테이블에 중복 된 것이 있으면 여러 번 교차 할 것이고 결과는 8 개의 중복 (예 : 64 행) 일 것입니다. 나는 이것이 "크로스 조인"또는 where 절에서 설정되지 않은 것 때문이라고 생각합니다. 이전 행의 쿼리에서 선택한 행을 선택하지 않을 수 있습니까? – verticese

관련 문제