Sous-requête

Signaler
Messages postés
10
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
18 février 2011
-
Messages postés
10
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
18 février 2011
-
Ce que je veux faire:
* Ajouter une valeur à ma table (nom, prenom, telephone et ID). L'ID est un INT appartenant à un numéro de téléphone dans une autre table. Voici la syntaxe:
INSERT INTO CONTACT (ID_EMPLOYEE,LAST_NAME,FIRST_NAME,PHONE_NUMBER) VALUES ((SELECT ID_EMPLOYEE FROM EMPLOYEE WHERE SHORT_NUMBER = '8100'),'test','test','029804')

Ma sous-requete est donc :
(SELECT ID_EMPLOYEE FROM EMPLOYEE WHERE SHORT_NUMBER = '8100')
qui doit retourner l'ID du numéro en parametre 8100.

MySQL rejete la demande pour erreur de syntaxe.
Je ne vois pas où est l'erreur, si quelqu'un pouvait me venir en aide.

5 réponses

Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Des sous-requetes en SQL ?? Je n'avais encore jamais vu ça depuis que je fais un peu de PHP...

Essaie de séparer en requètes séparées. Si il y a encore une erreur, c'est que ça ne vient pas de la sous-requete.
Messages postés
71
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
14 septembre 2007

Tout simplement. Tu essayes de faire un assert avec trop peu d'éléments. Tu fais un insert qui doit avoir 4 valeurs et ton sous-select ne renvoit que ID_EMPLOYEE.

Il faut donc compléter pour donner toutes les valeurs.
Messages postés
10
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
18 février 2011

Les 3 autres valeurs suivent la requete, regardes bien: (...),'test','test','029804'
Messages postés
58
Date d'inscription
dimanche 12 décembre 2004
Statut
Membre
Dernière intervention
21 juin 2006

Salut

A ta place je ferai une procédure stockée en PL/SQL mais ca dépend de mysql (je croi qu'il le supporte à partie de la version 5).

Si c'est pas possible dans ton cas tu peut executer ta sous requete avant récupérer le résultat, construire ta requête d'insertion et la faire executer
Messages postés
10
Date d'inscription
lundi 28 juin 2004
Statut
Membre
Dernière intervention
18 février 2011

Oui, je crois que je vais pas m'embeter plus, je vais le faire en deux fois. Il faut aussi dire que la version du serveur est .... la 3.23. Et pas moyen de l'upgrader pour l'instant, mon maitre de stage désire continuer avec cette version, qu'il considère stable.