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 :

Duplication d'enregistrement avec sql


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2017
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Duplication d'enregistrement avec sql
    Bonjour,

    J'ai la requête suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT  TC.ID_R, TC.ID_C, TIC.ID_I, TIC.* FROM TG_C TC 
    JOIN TLI_C TIC  ON TIC.ID_C = TC.ID_C 
    WHERE TC.ID_R = 1102939644
    qui me retourne le tableau suivant : sachant que j'ai fait une jointure entre la table TG_C et TIL_C.
    ------------------------------------------------------------------------------------------
    ID_R		         ID_C	       ID_I	                   ID_I	             ID_C	                
    -----------------------------------------------------------------------------------------
    1102939644	4768330	       20006904	           20006904	     4768330	
    1102939644	4768369	       20006955	           20006955	     4768369
    Maintenant sachant que ID_R n’est présent que sur la table TG_C que j’ai plus de 1400 ID_R dans ma table, je souhaite dupliquer les deux lignes en ajoutant chaque individu dans le contrat de l’autre. Cest-à-dire que j’aurai ceci au final :
    ------------------------------------------------------------------
    ID_R		ID_C	                          ID_I	      	nom
    ------------------------------------------------------------------
    1102939644	4768330	       	20006904	     	frank
    1102939644	4768369       	20006904	     	frank
    1102939644	4768369	       	20006955	     	laura
    1102939644	4768330	       	20006955	     	laura
    Merci pour vos réponses

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 081
    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 081
    Points : 30 828
    Points
    30 828
    Par défaut
    Citation Envoyé par cheikhnafall Voir le message
    je souhaite dupliquer les deux lignes en ajoutant chaque individu dans le contrat de l’autre.
    Où est l'individu ? Et le contrat ? D'où sort le nom ?
    Il manque quelques informations dans la description pour qu'on puisse commencer à analyser le problème...
    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 à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2017
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Où est l'individu ? L'individu se trouve dans la table TLI_C donc c'est la colonne nom
    Et le contrat ? le contrat se trouve dans la table TLI_C et TG_C donc la colonne ID_C
    D'où sort le nom ? le nom se trouve dans la table TLI_C

    Donc en gros je n'ai que id_c qui est présent dans les deux table

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 159
    Points : 38 968
    Points
    38 968
    Billets dans le blog
    9
    Par défaut
    Bonjour

    Si je comprends bien, TG_C est la table des contrats et un contrat peut concerner plusieurs individus, les individus d'un contrat sont dans la table TLI_C ?
    Si c'est bien le cas, la solution dépend du nombre mini et maxi d'individus qu'il peut y avoir pour un contrat.

    Dans tous les cas, des alias plus parlants à la fois pour les tables et pour les colonnes nous éviteraient de faire des suppositions quant au contenu fonctionnel de chaque objet !
    Par exemple, la requête reformulée ainsi est autrement plus compréhensible (sous réserve que j'ai bien compris le rôle de chaque table et colonne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  Contrat.ID_R         as ???
         ,  Contrat.ID_I         as ID_Individu
         ,  Contrat.ID_C         as ID_Contrat
         ,  Lien_Indv_Cont.ID_I  as ID_Individu
         ,  Lien_Indv_Cont.nom   as Nom_Individu 
         ,  Lien_Indv_Cont.ID_C  as ID_Contrat
    FROM  TG_C   Contrat 
    JOIN  TLI_C  Lien_Indv_Cont
      ON  Lien_Indv_Cont.ID_C = Contrat.ID_C 
    WHERE Contrat.ID_R = 1102939644
    Et aussi, SELECT [...] TIC.ID_I, TIC.* est aberrant, vous prenez deux fois la même colonne, sans compter que SELECT * est contre-performant et dangereux

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2017
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Merci pour vos supposition.

    En faite c'est un cas difficile à expliquer sur un forum.

    Merci à vous quand même.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2017
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour, Je pense que cette fois ci je vais bien formuler ma question:
    J'ai ce tableau au debut et avec du sql je souhaite avoir le second tableau.
    ce qui veut dire que dans chaque dossier, s'il y'a deux individus qui sont sur deux contrats différents, je mets chacun d'eux sur l'autre contrat.
    Le résultat final doit ressembler au tableau 2.
    ----------------------------------------------------
    dossier Num_individu Num_contrat
    ----------------------------------------------------
    Dossier_1 1 C1
    Dossier_1 2 C2
    Dossier_2 3 C1
    Dossier_2 4 C2

    -----------------------------------------------------
    dossier Num_individu Num_contrat
    -----------------------------------------------------
    Dossier_1 1 C1
    Dossier_1 2 C2
    Dossier_1 1 C1
    Dossier_1 2 C2
    Dossier_2 3 C1
    Dossier_2 4 C2
    Dossier_2 3 C1
    Dossier_2 4 C2

Discussions similaires

  1. [MySQL] Oubli d'un enregistrement requête sql avec mysql
    Par levasseur62 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/10/2011, 23h45
  2. [AC-2007] Créer un enregistrement avec des tables liées sur SQL Server
    Par NEfanda dans le forum Access
    Réponses: 2
    Dernier message: 29/04/2010, 19h31
  3. Verouiller un enregistrement avec linq to sql
    Par boby62423 dans le forum Linq
    Réponses: 10
    Dernier message: 29/04/2009, 13h34
  4. Réponses: 4
    Dernier message: 26/02/2008, 09h55
  5. [SQL] Duplication de lignes avec un ID différent
    Par neuropathie dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/12/2007, 15h59

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