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 :

recherche de jointure par requête


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut recherche de jointure par requête
    peut on savoir au moyen d'une requête sql; s'il existe une relation entre deux tables ?

    Si oui: peut connaitre le nom des champs liés ?

    exemple table mère et fille ( existe t-il un moyen de savoir que la table fille est liée à la table mère par le champs code_mère ?)

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    ça dépend de ton SGBD, et de s'il supporte les FOREIGN KEYS (et si elles sont correctements indiquées)

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par Swoög
    ça dépend de ton SGBD, et de s'il supporte les FOREIGN KEYS (et si elles sont correctements indiquées)
    j'utilise mysql5 et son moteur de table innoDB pour les jointures.

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    dans ce cas, il te faut récupérer les clées avec SHOW CREATE TABLE par exemple puis trouver les lignes correspondants aux FOREIGN KEYS (assez facile puisqu'elles commencent par FOREIGN KEY normalement )

    et enfin en extraire les informations.

    je doute que ce soit faisable uniquement avec MySQL, il te faudra certainement utiliser un langage externe (PHP par exemple) pour traiter la requête.

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 262
    Points : 133
    Points
    133
    Par défaut solution
    Ouf !!!
    j'ai enfin trouvé.
    Dans mysql5 il existe une base de données : information_schema.
    la table INFORMATION_SCHEMA KEY_COLUMN_USAGE

    contient les données sur les index et les jointures:

    CONSTRAINT_NAME :nom de la contrainte
    TABLE_SCHEMA : nom de la base de données contenant la table fille
    TABLE_NAME: nom de la table ou est definie la relation
    COLUMN_NAME: colonne de la clé étrangère
    REFERENCED_TABLE_SCHEMA : base de données qui contient la table mère
    REFERENCED_TABLE_NAME : table mère
    REFERENCED_COLUMN_NAME : keys table mère.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select TABLE_NAME,COLUMN_NAME,COLUMN_NAME,
    REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA KEY_COLUMN_USAGE
    WHERE TABLE_SCHEMA='nom_de_la_base_des_données'
    AND REFERENCED_COLUMN_NAME  <> 'NULL';
    pourquoi :WHERE TABLE_SCHEMA='nom_de_la_base_des_données'
    R : il y'a plusieurs base de données.
    porquoi :AND REFERENCED_COLUMN_NAME <> 'NULL';
    R:la clé primaire est definie aussi comme une contrainte qui n'a pas de reference sur une autre table.


    http://dev.mysql.com/doc/refman/5.0/...age-table.html

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/11/2014, 18h39
  2. recherche de date par requête
    Par pat17 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/02/2012, 14h01
  3. recherche par requête
    Par pat17 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/12/2011, 15h20
  4. [MySQL] Requête de recherche avec jointure dans une catégorie précise
    Par keusty78 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/10/2009, 21h01
  5. Performance des requêtes - jointure par fonctions
    Par denevers dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 07/12/2007, 15h11

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