Inserir vários ids de uma tabela em um INSERT em outra tabela

Seguinte, eu quero inserir em uma tabela N:M todos os ID’S da tabela 1 em um único insert, eu estou tentando isso mas informa que a subquery retorma mais de uma linha (que é o que deveria acontecer) mas isso não deveria ser um problema para mim já que eu quero inserir todos os id’s de uma tabela em um insert, aqui vai minha sintaxe:
INSERT INTO sessao_has_paciente (idsessao_has_paciente, sessao_idsessao, paciente_idpaciente) VALUES (DEFAULT, NEW.idsessao, (select idpaciente from paciente where dia_iddia = ‘2’));

INSERT INTO sessao_has_paciente (paciente_idpaciente) 
select idpaciente from paciente where dia_iddia = '2';

Será algo semelhante a isto, não sei se o mysql já preenche assim os campos default.

1 curtida

Realmente assim funciona, só que preciso usar também o new.idsessao, que deveria funcionar mas o MySQL diz que o campo não existe

Ele já preenche os campos default dessa forma sim, realmente só falta encaixar o new.idsessao nesse insert que o negócio tá feito

Resolvi, era só colocar o campo “NEW.idsessao” junto com o SELECT idpaciente separando por vírgula não depois do “from paciente” como eu estava fazendo

1 curtida