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 :

Insert Into + Jointure ?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut Insert Into + Jointure ?
    Bonjour

    J'aimerais savoir comment écrire un "Insert Into + une jointure"

    Les éléments sont les suivants :

    MLD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    compagnie(Num_Co,Nom_Co,Adresse_Co,#Cp_Co)
    avion(Num_Avion, TotalHeures_Avion, #Type_Avion,#Num_Compagnie)
    vol(Num_Vol,DatDep, Duree,#Num_Avion)
    A la suite de la saisie d'un formulaire (création d'un vol) , j'insère dans la relation "vol" : insert into nomtable values (champ1 , etc...)

    Cela fonctionnes , mais je voudrais en fait créer un vol en fonction d'une compagnie.

    Cela serait simple si j'avais une clé étrangère "numéro compagnie" dans vol , donc je suis obligé de passer par une jointure de vol vers avion , et de avion vers compagnie.

    Cependant, si toujours ceci est possible , comment la requete serait faite ?

    J'ai essayé cette solution qui ne fonctionne pas :

    Insert into vol values (...) where (select * from vol,avion,compagnie where jointures)

    Cordialement,

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Par défaut
    Citation Envoyé par Kenshin86
    Cela fonctionnes , mais je voudrais en fait créer un vol en fonction d'une compagnie.
    Désolé, j'ai du mal à voir ce que tu veux faire. Vu que la seule clé etrangère dans vol est Num_Avion, c'est un n° d'avion d'une compagnie donnée que tu voudrais insérer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert into vol values (...) where (select * from vol,avion,compagnie where jointures)
    Ca prête à confusion : je ne vois comment comment tu veux faire une jointure sur un enregistrement que tu es en train de créer (qui n'existe donc pas encore....).

    Quoi qu'il en soit, ce qui est faisable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    insert into vol 
    (select valeur_1, valeur_2, valeur_3, champ_1, champ_2
    from vol, avion, compagnie where ...)
    Avec valeur_1 et valeur_2 les données que tu connaîs (issues de ton formulaire) écrites "en dur" dans la requête, et champ_1 et champ_2 les valeurs que tu veux récupérer dans tes tables.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut
    Oui , je comprends.

    Meme pour moi , ce n'est pas très clair.

    Je voudrais créer une vol en fonction d'une compagnie (si j'avais la clé étrangère numcompagnie dans vol , il n'u aurait pas eu de soucis)

    Cependant , je suis obligé de vol , passé par le numéro avion de la relation avion qui lui contient une clé étrangère "numcompagnie" qui va me permettre de faire la jointure.


    Je ne sais comment écrire ça.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut
    En essayant ce que tu m'a dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO Vol(DateDep,Duree,HDep,HArr,Num_Aeroport1,Num_Aeroport2,Num_Avion,Num_Pilote1,Num_Pilote2)(Select('" & DatDep.Text & "','" & Duree1 & "','" & HDep.Text & "','" & HArr.Text & "','" & CodeAero1 & "','" & CodeAero2 & "','" & ComboBox3.Text & "','" & CodePil1 & "','" & CodePil2 & "',DateDep,Duree,HDep,HArr,Num_Aeroport1,Num_Aeroport2,Num_Avion,Num_Pilote1,Num_Pilote2) From Vol,Avion,Compagnie Where Vol.Num_Avion=Avion.Num_Avion And Avion.Num_Compagnie=Compagnie.Num_Compagnie And Num_Compagnie='" & Commune.Label3.Text & "') "

    Erreur de syntaxe dans l'instruction INSERT INTO

  5. #5
    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
    La syntaxe exacte est ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO matable (colonnes, ...)
    SELECT valeurs, ....
    FROM ...
    sans parenthèses autour du SELECT
    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.

  6. #6
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 271
    Par défaut
    Ok , je vais essayer ça.

    J'ai testé avec la clé étrangère du numéro compagnie dans la relation vol , et cela fonctionnes , meme si ça fait redondant. Ca restera ma solution de secours.

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

Discussions similaires

  1. Requête insert into + jointures
    Par Julien698 dans le forum Développement
    Réponses: 6
    Dernier message: 18/04/2014, 17h26
  2. [MySQL] INSERT INTO et JOINTURE
    Par florianjoy54 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 29/04/2010, 16h35
  3. [AC-2007] Problème de jointure dans INSERT INTO avec INNER JOIN
    Par andy331 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 16/03/2010, 15h59
  4. [AC-2007] Jointure dans un INSERT INTO
    Par andy331 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/03/2010, 23h30
  5. Jointure entre plusieurs requetes INSERT INTO
    Par Bernard67 dans le forum Requêtes et SQL.
    Réponses: 18
    Dernier message: 11/01/2009, 18h42

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