Exercício MySql?

Galera estou tentando resolver um exercício, gostaria de saber se alguém teria uma solução, não sei como faço para receber os valores já preenchidos de um campo de uma tabela, sei que se deve utilizar o Insert+Select.

Crie um comando INSERT que insira na tabela de histórico todos os alunos da disciplina de BD(Banco de dados) em 2009 e tiveram nota >5. Nesses novos registros que serão inseridos os alunos irão cursar a disciplina BD2(Banco de Dados 2) no ano de 2010 com o mesmo código da turma e o mesmo professor dos alunos de 2009, mas com frequência e notas desconhecidas.

Minha tabelas:

image

Se alguém tiver a solução pra esse exercício agradeço.
Vlw.

http://codare.aurelio.net/2008/05/17/mysql-insert-com-select-na-mesma-query/

O resto é lógica. Posta o que tentou e a dúvida pontual.

O exemplo do INSERT+SELECT fica muito vago as informações pois não dar pra entender como informo os valores no INSERT e faço a pesquisa no modo como o exercício está pedindo. Como por exemplo todo comando INSERT tem o values, como informo esses valores? No select eu irei fazer a pesquisa pra receber esses valores.

O mais próximo que cheguei seria isso:

INSERT INTO historico h(ra,cod_disc,cod_turma,cod_prof,ano,nota)
Select h.ra,h.cod_disc,h.cod_turma,h.cod_prof,h.ano,h.nota from historico h where h.cod_disc=10 and h.ano=2009 and h.nota>5;

OBS: cod_disc 10 é referente a disciplina BD.

Coloca no SELECT

INSERT INTO historico h(ra,cod_disc,cod_turma,cod_prof,ano,nota)
Select h.ra,10,h.cod_turma,h.cod_prof,h.ano,h.nota from historico h where h.ano=2009 and h.nota>5;

Alguém mais pode ajudar?