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 :

3 tables liées mais une seule ligne de retour ?


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut 3 tables liées mais une seule ligne de retour ?
    Bonjour,

    Je cherche à n'avoir qu'une seule ligne de retour alors qu'une requête standard en ressort plusieurs.
    J'explique :
    Je manipule des infos sur les rallye raids.
    Une table stocke partants, une autre les engagements et la dernière stocke les partants qui sont dans un engagement.
    Un engagement peut concerner de 1 partant (moto) à 4 (camion).

    Engagement
    ==========
    id_en n° annee categorie
    1 123 2002 auto
    2 200 2003 auto

    Partant
    =======
    id_p nom prenom
    1 Dupond Gérard
    2 Durant Michel

    Partant_ds_engagement
    =====================
    id_p id_en
    1 1
    1 2

    La requête satndard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select *
    from engament as en, partant as p, Partant_ds_engagement as pe
    where en.id_en = pe.id_en
    and en.id_p = p.id_p
    retourne (ici 2 partants dans une voiture)
    1 123 2002 auto 1 Dupond Gérard
    1 123 2003 auto 2 Durant Michel

    J'aimerai que ça me retourne
    1 123 2002 auto Dupond Gérard Durant Michel

    J'aimerai en fait grouper par id_engagement et ajouter x colonnes aux données retournées qui seraient :
    nom1 nom2 nom3 nom4 (maxi 4 pour un camion)

    Je n'arrive pas à trouver la solution.
    Si quelqu'un peut me donner un coup de pouce par avance Merci !

    Cordialement
    Sébastien

  2. #2
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Salut,
    essay ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT *
    FROM engament AS en, partant AS p, Partant_ds_engagement AS pe
    WHERE p.id_p in (SELECT id_p FROM partant_ds_eng 
                            GROUP BY id_eng
                            HAVING id_eng = (SELECT id_eng FROM engagement));

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 35
    Points : 31
    Points
    31
    Par défaut
    Salut,

    Non, ça ne fontionne pas.
    En fait le problème que j'ai si je veux sélectionner 10 engagements, je ne peux pas mettre de limit dans la requête standard car un engagement auto me retourne 2 enregistements, une moto 1 seul et 1 camion au moins 3.

    Le top pour moi serait cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT *
    FROM dd_engagement AS en, dd_partant AS p, dd_equipage AS eq
    WHERE p.id_partant = eq.id_partant
    AND eq.id_engagement = en.id_engagement
    AND en.id_engagement
    IN (
    	SELECT id_engagement 
    	FROM dd_engagement 
    	WHERE 'le where qui va bien'
    	LIMIT 0,10)
    Mais ça ne fonctionne pas sous mysql ...
    Je crois que je vais être obligé de faire 2 requêtes mais j'aurai préférer trouver une solution ...

    Si qq a une idée, je prends !

    Bonne journée
    Seb

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/03/2013, 10h39
  2. [WD17] Etat sur table. Affichage d'une seule ligne
    Par Belwen dans le forum WinDev
    Réponses: 13
    Dernier message: 29/11/2012, 11h31
  3. Deux tables, plusieurs enregistrements, une seule ligne
    Par SoizicT dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/03/2011, 12h07
  4. Export sur une seule ligne de plusieurs tables
    Par xian21 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/06/2008, 17h11
  5. Réponses: 2
    Dernier message: 13/12/2007, 16h56

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