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 :

Liaison entre tables


Sujet :

MySQL

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut Liaison entre tables
    Bonjour à tous,

    Je me pose une question, est-il possible de lier plusieurs tables grâce à un champ (portant le même nom ou pas) sans avoir à écrire manuellement les relations ?

    Une requête basique pour exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
         `contacts`.`nom`, 
         `contacts`.`prenom`, 
         `adresses`.`code_postal` 
    FROM 
         `contacts`, 
         `adresses` 
    WHERE 
         `contacts`.`id` = `adresses`.`id`
    Pouvoir remplacer la partie "WHERE `contacts`.`id` = `adresses`.`id`" par une fonction peut-être, ou autre, stipulant les liaisons ?

    Merci à vous .

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    la norme SQL prévoie les jointures naturelles.

    Mais d'une façon générale il est déconseillé de les utiliser, car elles peuvent engendrer des erreurs non voulues.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    Merci punkoff,

    Je ne connaissais pas (évidemment sinon je n'aurais pas posé la question), le terme que tu as employé m'a permis de faire une recherche, et je suis tombé sur un petit sujet sur lequel je vais adapter mon exemple au cas où certaines personne seraient intéressées !

    Jointure naturelle sans indiquer les champs (doit avoir un champ de même nom dans chaque table) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
         `contacts`.`nom`, 
         `contacts`.`prenom`, 
         `adresses`.`code_postal` 
    FROM 
         `contacts` 
    NATURAL JOIN 
         `adresses`;
    Jointure naturelle en indiquant un champs identique au deux tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
         `contacts`.`nom`, 
         `contacts`.`prenom`, 
         `adresses`.`code_postal` 
    FROM 
         `contacts` 
    JOIN 
         `adresses` 
    USING(`id`);
    Jointure naturelle en indiquant les champs à lier (inutile à mes yeux donc) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
         `contacts`.`nom`, 
         `contacts`.`prenom`, 
         `adresses`.`code_postal` 
    FROM 
         `contacts` 
    JOIN 
         `adresses` 
    ON(`contacts`.`id_contact` = `adresses`.`id_adresse`);
    Bon, reste à voir effectivement si c'est intéressant.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    J'en rigole d'avance !!!!

    A ++
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    Bonjour SQLpro,

    Je veux bien un peu plus de précision sur ce qui vous fait rire .

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Mais la jointure naturelle, cet extraordinaire miroir aux alouettes pour benêts !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2005
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    Si tel est le cas, je vais donc bien garder l'ancienne méthode, même si je la trouve un peu barbare :/

  8. #8
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Je pense que la première chose à faire, c'est de s'informer, voire se former, sur ce qu'est une jointure, quels sont les différents types de jointures qui existent, et comment on les utilise...
    Jetez un œil sur le tutoriel suivant : http://sqlpro.developpez.com/cours/sqlaz/jointures/
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

Discussions similaires

  1. [VB.net] liaison entre table et textbox's
    Par collaud_vb dans le forum Windows Forms
    Réponses: 10
    Dernier message: 25/09/2006, 13h27
  2. [Access 2003]Problème de liaison entre table
    Par steeves5 dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 09h40
  3. [DEB] Probleme de liaison entre tables
    Par ip203 dans le forum Access
    Réponses: 4
    Dernier message: 07/06/2006, 07h16
  4. Liaison entre tables
    Par Thierry69800 dans le forum Access
    Réponses: 1
    Dernier message: 20/11/2005, 23h19
  5. Problèmes de liaisons entre tables ...
    Par Mangun dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 11h35

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