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 :

Jointures de plusieurs tables !


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut Jointures de plusieurs tables !
    Bonjour à tous,

    j'ai un gors soucis de récupération de données à la suite de jointures entre 5 tables !

    voila ce que j'ai fait!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $Requete="SELECT T1.NoID,T1.Nom,T1.Actif,T1.DateLimit,T1.Num,
    T2.NoID,T2.Nom,T2.Actif,T2.DateLimit,T2.Num,
    T3.NoID,T3.Nom,T3.Actif,T3.DateLimit,T3.Num,
    T4.NoID,T4.Nom,T4.Actif,T4.DateLimit,T4.Num,
    T5.NoID 
    FROM TAgences AS T1, THebergeurs AS T2, TPrestataires AS T3, TAnnonceurs AS T5 
    WHERE T1.Num=T5.NoID AND T2.Num=T5.NoID AND T3.Num=T5.NoID AND T4.Num=T5.NoID";
    1 table TAgences
    1 table THebergeurs
    1 table TPrestataires
    1 table TServices

    1 TABLE TAnnonceurs qui possède un champ Num qui me permet de relier chaque table...
    Je suis pas sur que je m'y prenne bien !!! je n'ai aucun retour

    Si quelqu'un a une idée

    merci grandement

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut Pardon, j'ai oublié une table !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $Requete="SELECT T1.NoID,T1.Nom,T1.Actif,T1.DateLimit,T1.Num,
    T2.NoID,T2.Nom,T2.Actif,T2.DateLimit,T2.Num,
    T3.NoID,T3.Nom,T3.Actif,T3.DateLimit,T3.Num,
    T4.NoID,T4.Nom,T4.Actif,T4.DateLimit,T4.Num,
    T5.NoID 
    FROM TAgences AS T1, THebergeurs AS T2, TPrestataires AS T3, TServices AS T4, TAnnonceurs AS T5 
    WHERE T1.Num=T5.NoID AND T2.Num=T5.NoID AND T3.Num=T5.NoID AND T4.Num=T5.NoID";

  3. #3
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 147
    Points
    147
    Par défaut
    Quel est l'objectif de ta requête ?

    N'est-ce pas simplement une union entre les différentes tables que tu souhaites faire ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut Jointure
    Oui, c'est cela,

    je veux récupérer des données sur chaque table en associant la requete à un champs commun à toutes mes requetes !

    Mais je pense que comme je m'y prends sans ne peux pas fonctionner et je ne vois pas comment faire .

    Merci

  5. #5
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 147
    Points
    147
    Par défaut
    Ma vision est peut-être simpliste, mais que donne cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT NoID, Nom, Actif, DateLimit, Num FROM TAgences
    UNION
    SELECT NoID, Nom, Actif, DateLimit, Num FROM THebergeurs
    UNION
    SELECT NoID, Nom, Actif, DateLimit, Num FROM TPrestataires
    UNION
    SELECT NoID, Nom, Actif, DateLimit, Num FROM TServices
    UNION
    SELECT Num FROM TAnnonceurs

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    J'ai une erreur !

    Mes tables TAnnonceur,THebergeurs,TPrestataires,TServices (memes strucures)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    CREATE TABLE `TAgences` (
      `NoID` int(11) NOT NULL auto_increment,
      `Nom` text NOT NULL,
      `Activite` int(11) NOT NULL default '0',
      `Region` varchar(30) NOT NULL default '',
      `Station` int(11) NOT NULL default '0',
      `Secteur` varchar(30) NOT NULL default '',
      `Ville` varchar(100) NOT NULL default '0',
      `Adresse` text NOT NULL,
      `Tel` varchar(15) NOT NULL default '',
      `Port` varchar(15) NOT NULL default '',
      `Fax` varchar(15) NOT NULL default '',
      `Email` varchar(50) NOT NULL default '',
      `Site` varchar(100) NOT NULL default '',
      `Texte` text NOT NULL,
      `Actif` int(11) NOT NULL default '0',
      `Photos` varchar(100) NOT NULL default '',
      `Dep` int(11) NOT NULL default '0',
      `Activite2` int(11) NOT NULL default '0',
      `Activite3` int(11) NOT NULL default '0',
      `Capacite` int(11) NOT NULL default '0',
      `Type` varchar(100) NOT NULL default '',
      `Num` int(11) NOT NULL default '0',
      `DateLimit` varchar(11) NOT NULL default '',
      PRIMARY KEY  (`NoID`,`Num`)
    ) TYPE=MyISAM AUTO_INCREMENT=37 ;
    et celle TAnnonceurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE TABLE `TAnnonceurs` (
      `NoID` int(11) NOT NULL auto_increment,
      `Nom` varchar(30) NOT NULL default '',
      `Prenom` varchar(50) NOT NULL default '0',
      `Email` varchar(50) NOT NULL default '',
      `Adresse` text NOT NULL,
      `Tel` varchar(30) NOT NULL default '',
      `Port` varchar(30) NOT NULL default '',
      `Login` varchar(20) NOT NULL default '',
      `Pass` varchar(20) NOT NULL default '',
      `Actif` int(11) NOT NULL default '0',
      `Date` varchar(11) NOT NULL default '',
      `Date2` varchar(11) NOT NULL default '',
      `Nbre` int(11) NOT NULL default '0',
      PRIMARY KEY  (`NoID`)
     
    ) TYPE=MyISAM AUTO_INCREMENT=12 ;
    Je veux les enregistrements qui concernent les tables avec par exemple Actif à 1 sauf TAnnonceurs .
    Je veux aussi avoir le nom de la table TAnnonceurs indexé à Num dans les autres tables.

    Merci de vos conseils

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    C'est OK !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT NoID, Nom, Actif, DateLimit, Num FROM TAgences WHERE Actif IN (1,2)
    UNION
    SELECT NoID, Nom, Actif, DateLimit, Num FROM THebergeurs WHERE Actif IN (1,2)
    UNION
    SELECT NoID, Nom, Actif, DateLimit, Num FROM TPrestataires WHERE Actif IN (1,2)
    UNION
    SELECT NoID, Nom, Actif, DateLimit, Num FROM TServices WHERE Actif IN (1,2)
    Mes retours sont OK, mais je voudrais récupérer le champ Nom de la table TAnnonceurs associé aux autre tables et c'est la que j'ai une erreur !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UNION
    NoID, Nom FROM TAnnonceurs
    Une idée ?

    Merci encore

Discussions similaires

  1. Réponses: 16
    Dernier message: 20/05/2015, 13h36
  2. [MySQL] Jointure de plusieurs tables qui rend le site lourd
    Par ramoul dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/09/2009, 11h43
  3. Problème de Jointure entre plusieurs tables
    Par Stouille89 dans le forum JDBC
    Réponses: 12
    Dernier message: 11/12/2007, 14h16
  4. hibernate-criteria : jointure sur plusieurs tables
    Par loic72 dans le forum Hibernate
    Réponses: 9
    Dernier message: 24/09/2007, 17h27
  5. jointures de plusieurs tables
    Par ben127 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/06/2004, 14h57

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