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

Requêtes MySQL Discussion :

remplir une table à partir d'une requête sur une autre table


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut remplir une table à partir d'une requête sur une autre table
    Bonjour tout le monde,

    Je voudrais savoir comment je peux remplir une table d'une BD MySQL à partir du résultat d'une requête exécutée sur une autre table.
    voici mes tables :

    matrix_info_asset (num_node,num_info_asset,risk_node_info)
    matrix5 (num_node,num_vulnerab,risk_node)

    avec : matrix_info_asset.num_node=matrix5.num_node

    je veux insérer les résultats de la requête suivante dans la table matrix_info_asset :

    voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT num_node,max(risk_node) FROM matrix5 group by num_node"
    je veux insérer les résultats de cette requête dans matrix_info_asset tel que

    matrix_info_asset.num_node=matrix5.num_node

    Merci d'avance.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Pour cela, tu peux utiliser la syntaxe INSERT INTO... SELECT...
    Le seul souci, c'est que ta table matrix_info_asset a 3 colonnes alors que ta requête n'en renvoie que 2...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    oui normalement l'autre colonne est un clé étranger qui va être récupéré à partir d'une autre table directement .
    moi je veux insérer le résultat max(risk_node) dans le champs risk_node_info en respectant la jointure.

    Est ce que ça pose un problème?

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Citation Envoyé par mennou Voir le message
    moi je veux insérer le résultat max(risk_node) dans le champs risk_node_info en respectant la jointure.

    Est ce que ça pose un problème?
    Tu veux insérer, ou tu veux mettre à jour un champ pour une ligne qui existe déjà ?
    Les deux sont possibles (mais ça n'est pas la même syntaxe) .

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Merci bien pour vos réponses rapides.
    Bon je vous ai compris maintenant, c'est une mise à jour d'enregistrements existants déjà.

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Voilà un lien vers un post qui traite à peu près de la même question et dont tu peux t'inspirer .

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup ced c'est très gentil de votre part.
    je vais essayer de nouveau

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 47
    Points : 32
    Points
    32
    Par défaut
    Bonjour,
    j'ai oublié de la poster hier, voila la solution et qui marche bien, pour que tout le monde en profite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    update network_node inner join 
    (SELECT num_node,max(risk_node)as max 
    FROM matrix5 group by num_node)
     b2 on b2.num_node = network_node.num_node 
    set network_node.max_risk_node = b2.max
    Merci beaucoup à notre cher developpez.com

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

Discussions similaires

  1. Relancer une fonction à partir d'un clique sur une checkbox
    Par yop3112 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 25/06/2015, 11h45
  2. Réponses: 5
    Dernier message: 25/09/2014, 08h16
  3. Réponses: 0
    Dernier message: 26/04/2010, 12h49
  4. ouvrit une base à partir d'un form sur une autre
    Par Stéph utilisateur d'acces dans le forum IHM
    Réponses: 3
    Dernier message: 22/04/2008, 08h12
  5. [EJB] EJB sur une PC et l'application web sur un autre
    Par hichaminfo dans le forum Java EE
    Réponses: 1
    Dernier message: 24/04/2007, 16h16

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