IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Requete INSERT avec multi-select


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut Requete INSERT avec multi-select
    Bonjour à tous,

    Je buche depuis le matin sur un problème assez simple,
    J'ai deja réaliser ce genre de requete avant, mais je ne me rapelle plus bien comment ^^

    Voici le code qui me pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO numero (id_conv, id_empl, num_num) 
    select id_conv from convention where num_conv = 103,
    select id_empl from emplacement where ville_empl = 'Bruxelles', 
    '025/12.34.56';
    Et voici :

    Msg 102, Level 15, State 1, Line 2
    Incorrect syntax near ','.
    Msg 102, Level 15, State 1, Line 3
    Incorrect syntax near ','.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il vous manque un select (et peut-être un FROM selon le SGBD) et des parenthèses, mais je ne suis pas fan de cette écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO numero (id_conv, id_empl, num_num) 
    SELECT
        (SELECT id_conv FROM convention WHERE num_conv = 103),
        (SELECT id_empl FROM emplacement WHERE ville_empl = 'Bruxelles'), 
        '025/12.34.56';

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 84
    Par défaut
    D'habitude on ne fait pas : INSERT INTO table (champs1, champs2) VALUES (....) ?
    Il n'y a pas le VALUES ici c'est normal ?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Citation Envoyé par shaoling Voir le message
    D'habitude on ne fait pas : INSERT INTO table (champs1, champs2) VALUES (....) ?
    Il n'y a pas le VALUES ici c'est normal ?
    Totalement normal.

    Il existe deux formes de la commande INSERT INTO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO nom_table (nom_colonne, ...)
    VALUES (valeur, ...);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO nom_table (nom_colonne, ...)
    SELECT colonne, ...
    FROM autre_table
    La première ne traite qu'une ligne à la fois, la seconde autant qu'en retourne le SELECT.

    En revanche, il n'y a pas de champs dans une table SQL... mais des colonnes !
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    Merci pour vos réponses

    J'ai trouvé la solution entre temps
    Mais cela me donne quelque idées pour la suite...

    Voici comment j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO numero (id_conv, id_empl, num_num) 
    SELECT c.id_conv, e.id_empl, '025/12.34.56' 
    FROM convention as c, emplacement as e
    WHERE c.num_conv = 103 
      AND e.ville_empl = 'Bruxelles';

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete INSERT avec plusieurs SELECT
    Par Tinkite82 dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/09/2009, 17h30
  2. Requete insert avec select
    Par burndev dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/12/2008, 16h55
  3. Requete insertion avec des select
    Par miketidy dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/05/2008, 10h36
  4. Requete insert avec select
    Par nanette38 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 26/03/2008, 16h21
  5. effectuer une requete insert avec 'values' ET 'select'
    Par delaio dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/08/2004, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo