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 PostgreSQL Discussion :

Injection en masse si l'information n'existe pas déjà avec les id d'une autre table


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut Injection en masse si l'information n'existe pas déjà avec les id d'une autre table
    Bonjour,

    J'ai besoin d'injecter l'info "toto1, toto2, toto3, id" pour tous les id de la TABLE2 répondant à la condition. Un truc du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Insert IF NOT EXISTE INTO TABLE1
    VALUES (toto1, toto2, toto3, id IN (SELECT id FROM TABLE2 WHERE titi='texte'))
    Est-ce que quelqu'un sait faire?

    Cordialement,
    Vandman

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    C'est cela que tu cherches à faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Insert  INTO TABLE1
    SELECT  toto1, toto2, toto3, id 
    FROM    TABLE2 
    WHERE   titi = 'texte'
    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.

  3. #3
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut
    Bonjour,

    Pas exactement.

    toto1, toto2, toto3 correspond à du texte. Ce sont des informations que je dois injecter avec chaque id de la table 2 pour lequel la clause where est bonne.

    TABLE2:
    id titi
    1 info1
    2 info4
    3 info4
    4 info4
    5 info2
    ... ...

    Je veux obtenir pour WHERE='info4'
    TABLE1
    inf1 inf2 inf3 inf4
    toto1 toto2 toto3 2
    toto1 toto2 toto3 3
    toto1 toto2 toto3 4

    Attention, je ne dis pas que je remplace les informations déjà existantes, j'ajoute de l'information à Table1 si celle ci n'existe pas déjà.

    Cordialement,
    Vandman

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Comme ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    INSERT  INTO table1
        (   inf1
        ,   inf2
        ,   inf3
        ,   inf4
        )
    SELECT  'toto1'
        ,   'toto2'
        ,   'toto3'
        ,   tb2.id 
    FROM    table2  tb2 
    WHERE   tb2.titi = 'texte'
      AND   NOT EXISTS
            (   SELECT  NULL
                FROM    table1  tb1
                WHERE   tb1.id  = tb2.id
            )
    Avec toutes les informations, c'est plus facile
    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 actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut
    Bonjour,

    Merci al1_24, ça fonctionne très bien.

    Cordialement,
    Vandman

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

Discussions similaires

  1. Trouver valeurs d'une table n'existant pas dans une autre table
    Par aliasjcdenton dans le forum Langage SQL
    Réponses: 7
    Dernier message: 13/10/2011, 10h41
  2. récupérer des informations d'une feuille et les placer dans une autre
    Par winclass dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2008, 21h34
  3. Réponses: 2
    Dernier message: 22/03/2007, 16h19
  4. Tester si un couple de champs existe sur une autre table
    Par jerjerrod dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/02/2007, 18h02
  5. [Conception] Rerchercher des informations sur une autre table
    Par tilou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/05/2006, 19h35

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