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 tables


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Par défaut Jointures de tables
    Bonjour,
    j'ai un gros soucis de jointure de tables et je ne vois pas comment faire après plusieurs jours de prises de tête..........voila:
    4 tables avec tous les champs identiques.
    1 table qui comporte un champ commun aux autres tables.

    Je veux récupérer le nombre de lignes qui figurent dans les 4 tables d'un identifiant de la table unique ....

    Supposons que les 4 tables aient ces 2 champs NoID, Activite
    et dans la table unique 1 champ NoID qui soit celui de Activite des autres tables

    Comment faire la jointure ?

    J'ai fais ca qui ne marche pas du tout
    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.Table, 
    T2.NoID, T2.Activite, 
    T3.NoID, T3.Activite, 
    T4.NoID, T4.Activite, 
    T5.NoID, T5.Activite, 
    FROM TPrestatairesA AS T1, TAgences AS T2, THebergeurs AS T3, TPrestataires AS T4, TServices AS T5 
    WHERE T1.NoID = T2.NoID AND T1.NoID = T3.NoID AND T1.NoID = T4.NoID AND T1.NoID = T5.NoID";
    Merci de votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Tu peux nous dire comment se nomme tes tables.je suis un peu confus entre T1 et tpprestatairesA...
    Si tu les a appellés T1 T2 voilà le code
    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.Table, 
    T2.NoID, T2.Activite, 
    T3.NoID, T3.Activite, 
    T4.NoID, T4.Activite, 
    T5.NoID, T5.Activite, 
    FROM T1,T2,T3,T4,T5 
    WHERE T1.NoID = T2.NoID AND T1.NoID = T3.NoID AND T1.NoID = T4.NoID AND T1.NoID = T5.NoID";
    Si non :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $Requete="SELECT T1.NoID, T1.Nom, T1.Table, 
    T2.NoID, T2.Activite, 
    T3.NoID, T3.Activite, 
    T4.NoID, T4.Activite, 
    T5.NoID, T5.Activite, 
    FROM TPrestatairesA, TAgences, THebergeurs, TPrestataires, TServices
    WHERE TPrestatiresA.NoID = TAgences.NoID AND TPrestatiresA.NoID = THbergeurs.NoID AND TPrestatiresA.NoID = TPrestataires.NoID AND TPrestatiresA.NoID = TServices.NoID";
    Je ne sais vraiment pas pourquoi tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...FROM TPrestatairesA AS T1,...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Par défaut
    Toujours une erreur en essayant le code .........je suis un peu perdu la !
    Mes tables:

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    CREATE TABLE `TAgences` (
      `NoID` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` text NOT NULL,
      `Activite` int(11) NOT NULL DEFAULT '0',
      `Num` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY  (`NoID`,`Num`)
    ) 
    CREATE TABLE `THebergeurs` (
      `NoID` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` text NOT NULL,
      `Activite` int(11) NOT NULL DEFAULT '0',
      `Num` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY  (`NoID`,`Num`)
    ) 
    CREATE TABLE `TPrestataires` (
      `NoID` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` text NOT NULL,
      `Activite` int(11) NOT NULL DEFAULT '0',
      `Num` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY  (`NoID`,`Num`)
    ) 
    CREATE TABLE `Services` (
      `NoID` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` text NOT NULL,
      `Activite` int(11) NOT NULL DEFAULT '0',
      `Num` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY  (`NoID`,`Num`)
    )
    et la dernière:
    CREATE TABLE `TPrestatairesA` (
      `NoID` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` text NOT NULL,
      `Table` int(11) NOT NULL DEFAULT '0',
      PRIMARY KEY  (`NoID`,`Table`)
    )
    Merci encore de votre aide !

  4. #4
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    Une jointure ça me fait penser à INNER JOIN

    alors moi je ferais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT T1.activite, T2.activite, T3.activite, T4.activite, T5.activite
    FROM (((T1 INNER JOIN T2 ON T1.id = T2.id) INNER JOIN T3 ON T1.id = T3.id) INNER JOIN T4 ON T1.id = T4.id) INNER JOIN T5 ON T1.id = T5.id;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 37
    Par défaut
    Voila ce que j'ai fais, mais j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $Requete="SELECT T1.TPrestatairesA, T2.TAgences, T3.THebergeurs, T4.TPrestataires, T5.TServices
    FROM (((T1 INNER JOIN T2 ON T1.TPrestatairesA = T2.Activite) 
    INNER JOIN T3 ON T1.TPrestatairesA = T3.Activite) 
    INNER JOIN T4 ON T1.TPrestatairesA = T4.Activite) 
    INNER JOIN T5 ON T1.TPrestatairesA = T5.Activite";
    Merci encore ( erreur de syntaxe) ?

  6. #6
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    si je me réfères a la declaration de tes tables, il faut que tu changes

    T1 par TPrestataire
    T2 par T...

    et ton identifiant tu l'as appelé NoID donc ça donnerai un truc comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT TPrestataires.Activite, TAgences.Activite, TPrestatairesA.Activite, THebergeurs.Activite, TServices.Activite
    FROM (((TPrestataires INNER JOIN TAgences ON TPrestataires.NoID = TAgences.NoID) INNER JOIN TServices ON TPrestataires.NoID = TServices.NoID) INNER JOIN TPrestatairesA ON TPrestataires.NoID = TPrestatairesA.NoID) INNER JOIN THebergeurss ON TPrestataires.NoID = THebergeurs.NoID;

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

Discussions similaires

  1. Jointure de table avec Interbase
    Par ada_b dans le forum InterBase
    Réponses: 21
    Dernier message: 12/05/2010, 19h52
  2. Réponses: 7
    Dernier message: 10/02/2005, 00h13
  3. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07
  4. jointure sur table et procedure stocké
    Par pram dans le forum SQL
    Réponses: 3
    Dernier message: 18/11/2004, 21h56
  5. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50

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