Sous-requête

Breizhim Messages postés 10 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 18 février 2011 - 6 juin 2006 à 19:01
Breizhim Messages postés 10 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 18 février 2011 - 7 juin 2006 à 11:35
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

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
6 juin 2006 à 20:17
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.
0
Bel0 Messages postés 71 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 14 septembre 2007
6 juin 2006 à 22:30
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.
0
Breizhim Messages postés 10 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 18 février 2011
7 juin 2006 à 09:04
Les 3 autres valeurs suivent la requete, regardes bien: (...),'test','test','029804'
0
cs_PoFMaN Messages postés 58 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 21 juin 2006
7 juin 2006 à 10:35
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Breizhim Messages postés 10 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 18 février 2011
7 juin 2006 à 11:35
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.
0
Rejoignez-nous