ragazzo04 Posted March 18, 2013 at 05:24 PM Report #499576 Posted March 18, 2013 at 05:24 PM (edited) Boa tarde pessoal Gostava que me pudessem esclarecer uma dúvida num comando MySql. Eu tenho a seguinte tabela Operação: idOperacao (INT) Operacao_Data_Inicio (DATE) Operacao_Data_Prevista (DATE) Operacao_Data_Final (DATE) Operacao_Observacao (VARCHAR200) Estado_idEstado (INT) Utilizador_idUtilizador (INT) Local_idLocal (INT) Eu consigo inserir nesta tabela da seguinte maneira: INSERT INTO `gabineteinformatica`.`operacao` (`Operacao_Data_Inicio`, `Operacao_Data_Prevista`, `Operacao_Data_Final`, `Operacao_Observacao`, `Estado_idEstado`, `Utilizador_idUtilizador`, `Local_idLocal`) VALUES ('2013-02-12', '2013-02-15', '2013-03-20', 'TESFTE', '2', '1', '8'); Sendo o 2 o 1 e o 8 o valor dos id’s em outras tabelas. Mas eu necessitava de introduzir esses valores através do nome correspondente a esse ID na respectiva tabela. Eu sei que se fosse apenas só um poderia fazer assim: INSERT INTO local (`Local_Nome`, `Tipo_Local_idTipo_Local`) select '1', idTipo_Local from tipo_local where Tipo_Local_Nome = 'Gabinete'; Eu tentei: INSERT INTO operacao (`Operacao_Data_Inicio`, `Operacao_Data_Prevista`, `Operacao_Data_Final`, `Operacao_Observacao`, `Estado_idEstado`, `Utilizador_idUtilizador`, `Local_idLocal`) select '2013-03-18', '2013-03-19', '2013-03-19', 'Teste192', idEstado from estado where Estado_Nome = 'Terminado' , idUtilizador from utilizador where Utilizador_Numero = '1008356', idLocal from local where Local_Nome = 'Terminado'; Mas dá-me o seguinte erro: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' idUtilizador from utilizador where Utilizador_Numero = '1008356', idLocal from ' at line 1 0.000 sec Edited March 18, 2013 at 11:06 PM by brunoais geshi
Solution ragazzo04 Posted March 18, 2013 at 06:03 PM Author Solution Report #499582 Posted March 18, 2013 at 06:03 PM (edited) Já consegui achar uma solução, aqui fica para se alguém necessitar: INSERT INTO operacao (`Operacao_Data_Inicio`, `Operacao_Data_Prevista`, `Operacao_Data_Final`, `Operacao_Observacao`, `Estado_idEstado`, `Utilizador_idUtilizador`, `Local_idLocal`) values ("2013-03-18", "2013-03-19", "2013-03-19", "Teste192", (select idEstado from estado where Estado_Nome = 'Terminado'), (select idUtilizador from utilizador where Utilizador_Numero = '1008356'), (select idLocal from local where Local_Nome = 'Redes')); Edited March 18, 2013 at 11:06 PM by brunoais geshi
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now