Version complète: sur le forum Webmaster Hub : INSERT ... SELECT
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
Silveur
Bonsoir,

Je ne parviens pas à mélanger les insertions de types SELECT et VALUES (et j'ai encore plus de mal à m'exprimer à ce sujet blush.gif)

Voici la requête que je souhaiterai faire :

CODE
INSERT INTO objets (objets.idj,objets.idobj,objets.nom,objets.description,objets.effet,objets.ca
,objets.prix) 53, SELECT id,nom,description,effet,cat,prix FROM objets_liste WHERE id='1'


Bien évidemment, ça ne fonctionne pas. En fait, la documentation MySQL montre comment insérer rapidement dans une table un contenu qui se trouve déjà dans une autre table... Mais elle n'explique pas comment ajouter à ce nouveau contenu une information qui n'est pas présente.

Cette requête fonctionne :

CODE
INSERT INTO objets (objets.idobj,objets.nom) SELECT id,nom FROM objets_liste WHERE id='1'


Pour éclaircir un peu les choses, la table objets possède 3 champs (idj, idobj et nom), tandis que la table objets_liste en possède 2 (idobj et nom). Je voudrais faire en sorte, par une seule requête, que les informations présentes dans la table objets_liste soient copiée dans la table objets, et qu'en même temps, je puisse ajouter manuellement une valeur à idj.

Sinon... tant pis, on passera par plusieurs requêtes nonono.gif

Merci et bonne saint valentin wub.gif
TheRec
Bonsoir,

La syntaxe d'une sous requête est la même que celle d'une requête saut qu'elle est entourée d'une parenthèse ouvrante et une parenthèse fermante. En te basant sur ce postulat tu peux en déduire qu'il est possible d'ajouter des données "fixes" lors de la sélection, la syntaxe est la suivante pour la requête que tu souhaites faire :
SQL
INSERT INTO objets (objets.idj, objets.idobj, objets.nom, objets.description, objets.effet, objets.cat, objets.prix) (SELECT '53', id, nom, description, effet, cat, prix FROM objets_liste WHERE id='1')

P.S. : Tant que le nombre de champs sont les mêmes tu n'auras pas de problème.
Silveur
Super ! Merci beaucoup smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.