Existe-t-il un moyen d’insérer des valeurs prédéfinies et des valeurs obtenues d’une requête select? Par exemple:
INSERT INTO table1 VALUES ("A string", 5, [int]).
J'ai la valeur de "A string" et le nombre 5, mais je dois trouver la valeur [int] à partir d'un select comme ceci:
SELECT idTable2
FROM table2
WHERE ...
cela me donne cet identifiant à mettre dans table1.
Comment fusionner cela en une seule déclaration?
Utilisez un insert ... select
requête, et mettez les valeurs connues dans la select
:
insert into table1
select 'A string', 5, idTable2
from table2
where ...
utilisez juste une sous-requête juste comme:
INSERT INTO table1 VALUES ("A string", 5, (SELECT ...)).
INSERT INTO nom_table1 (Id, nom. FROM nom_table2;
essaye ça
INSERT INTO TABLE1 (COL1 , COL2,COL3) values
('A STRING' , 5 , (select idTable2 from Table2) )
where ...
Toutes les autres réponses résolvent le problème et ma réponse fonctionne de la même manière que les autres, mais de manière plus didactique (cela fonctionne sur MySQL ... je ne connais pas d'autres serveurs SQL):
INSERT INTO table1 SET
stringColumn = 'A String',
numericColumn = 5,
selectColumn = (SELECT idTable2 FROM table2 WHERE ...);
Vous pouvez vous référer à la documentation MySQL: INSERT Syntax
INSERT INTO table1
SELECT "A string", 5, idTable2
FROM table2
WHERE ...
Voir: http://dev.mysql.com/doc/refman/5.6/en/insert-select.html
Essayez ce qui suit:
INSERT INTO table1
SELECT 'A string', 5, idTable2 idTable2 FROM table2 WHERE ...
INSERT INTO table1 (col1, col2)
SELECT "a string", 5, TheNameOfTheFieldInTable2
FROM table2 where ...
Essaye ça:
INSERT INTO table1 SELECT "A string", 5, idTable2 FROM table2 WHERE ...