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 :

Requête impliquant trois tables


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Points : 73
    Points
    73
    Par défaut Requête impliquant trois tables
    Bonjour,
    je débute en sql,et j'ai une requête qui me pose un petit souci :

    J'ai trois tables dans ma base :

    - articles : article_id, author_id
    - old_authors : author_id, author_name
    - authors : author_id, author_name

    L'author_id de la table article est incorrect. Il correspond aux anciens ids qui n'existent maintenant plus.
    La table old_authors contient les correspondances entre les anciens ids et les noms d'auteurs.
    La table authors contient les ids corrects pour chaque nom.
    Mon but est de remplacer les author_id de articles par les nouveaux qui leur correspondent pour chaque auteur.

    Je dois donc (je suppose) faire une jointure entre articles et old_authors pour récupérer les noms correspondants aux anciens ids, puis une autre entre les noms obtenus et authors pour obtenir les nouveaux ids.
    Finalement, il faut insérer tous ces nouveaux ids dans ma table articles.

    Malheureusement, j'ai beau lire des tutos, je ne vois pas du tout comment faire.

    Un petit coup de main ?

    EDIT :
    SGBD utilisé : PostgreSQL

  2. #2
    say
    say est déconnecté
    Membre éprouvé
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 258
    Points
    1 258
    Par défaut
    je pense que c'est pas une insertion mais une mise à jour que tu veux faire.

    essaies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE articles set author_id = authors.author_id from 
    authors INNER JOIN old_authors ON authors.author_name = old_authors.author_name
     where articles.author_id = old_authors.author_id;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 23
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup
    Hélas il semblerait que j'ai plusieurs author_name pour un même author_id ce qui m'empêche de faire quoi que ce soit (la table a vraiment été conçue n'importe comment)...
    J'aurais dû vérifier ça avant.

    Milles excuses et merci pour ton aide !!

  4. #4
    say
    say est déconnecté
    Membre éprouvé
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 258
    Points
    1 258
    Par défaut
    de nada...
    en effet, c'est n'importe quoi

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

Discussions similaires

  1. Requête impliquant trois tables
    Par kekule10 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 27/06/2014, 20h06
  2. Problème requête sur trois tables
    Par marcuzzz dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/09/2010, 21h17
  3. [AC-2003] Requête entre trois table
    Par Zoulficar dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 26/11/2009, 20h32
  4. Une requête sur trois tables
    Par momoG dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/08/2007, 18h00
  5. [phpMyAdmin] Faire une requête avec trois tables
    Par camzo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/12/2006, 23h55

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