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

MySQL Discussion :

Correspondances croisées entre 2 tables


Sujet :

MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 144
    Points : 88
    Points
    88
    Par défaut Correspondances croisées entre 2 tables
    Bonjour

    J'ai 2 tables produits et prets.

    Dans prets, il y a une rubrique nommé prets.idproduits, qui contient l'identifiant unique correspondant dans produits.
    J'ai créé maintenant une rubrique dans Produits, produits.idprets qui doit contenir son correspondant dans prets.
    Par exemple :
    Dans table Prets
    prets.idprets=100
    prets.idproduits=200
    Dans table Produits
    Produits.idproduits=200
    Produits.idprets= 0

    je désire le traitement suivant :
    - lire toute la table Prets, et pour tout enregistrement de prets, le chercher dans Produits et mettre à jour Produits.idprets.
    Donc dans mon exemple :
    -lire le prets.idprets=100,
    - trouver le Produits.idproduits, donc 200
    -UPDATER dans Produits la rubrique Produits.idprets et la mettre=100

    Ceci me semble correct mais évidemment ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE PRODUITS
    SET PRODUITS.IDPRETS= prets.idprets
    WHERE produits.idproduits=prets.idproduits
    Une idée ?
    Merci

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    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 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    votre question soulève un problème de modélisation de la base : votre ajout de colonne n'a de sens que s'il y a bijection entre produits et prets : 1 prêt = 1 produit
    Je suppose que ce n'est pas le cas

    Si toutefois c'était le cas, vous pourriez le faire avec la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update produit T1
    set idpret = 
       (select idpret 
        from pret T2
        where T2.idproduit = T1.idproduit)

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 144
    Points : 88
    Points
    88
    Par défaut merci
    Ok, cela fonctionne comme il faut.
    Oui, c'est bien une bijection.
    Merci

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 380
    Points : 19 062
    Points
    19 062
    Par défaut
    Salut lepatantpato.

    Voici une autre façon de faire une jointure entre deux tables dans le cas d'une mise à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update     produit as T1
    inner join pret    as T2
    on T2.idproduit = T1.idproduit
     
    set t1.idpret = t2.idpret;
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    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 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Voila une bien curieuse façon de noter : +1 sur les questions et zéro sur les réponses qui résolvent le problème

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 144
    Points : 88
    Points
    88
    Par défaut Résolu
    Merci à vous deux pour vos réponses.
    A Escartefigue :
    désolé pour la notation, je me suis trompé !

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

Discussions similaires

  1. Requête croisée entre deux tables
    Par Laurent_ltz dans le forum Requêtes
    Réponses: 8
    Dernier message: 23/10/2013, 21h28
  2. [AC-2010] Relation croisée entre deux tables
    Par noratec dans le forum Modélisation
    Réponses: 5
    Dernier message: 11/10/2012, 15h38
  3. Correspondance entre 2 tables
    Par lerorodu51 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/06/2008, 11h50
  4. [MySQL] Correspondance entre 2 tables
    Par christophepercai dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/01/2007, 09h40
  5. [SELECT] sélection croisée entre deux tables
    Par WriteLN dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/03/2005, 11h05

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