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 :

requete tables liees


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut requete tables liees
    bonjour,
    je travaille avec egroupware et je souhaite faire une requete sur 2 tables.
    egw_cal:
    cal_id

    egw_cal_extra:
    cal_id
    cal_extra_name
    cal_extra_value

    Quand je créé un evenement calendrier avec des champs personnalisés (hebergement, transport, repas) j'obtiens par exemple:

    egw_cal =>
    cal_id=1

    egw_cal_extra =>
    cal_id=1 cal_extra_name=transport cal_extra_value=voiture
    cal_id=1 cal_extra_name=repas cal_extra_value=resto
    cal_id=1 cal_extra_name=hebergement cal_extra_value=maison

    est-il possible d'obtenir le resultat suivant:
    la requete donnerait=>
    cal_id=1 transport=voiture repas=resto hebergement=maison

    J'arrive seulement a recuperer les 3 enregistrements de la table 'egw_cal_extra' sur 3 lignes distinctes.

    Y t'il une solution a cela?
    merci d'avance & kenavo

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Salut,
    Regarde du côté de CONCAT pour concaténer cal_extra_name et cal_extra_value et GROUP_CONCAT pour le passage de ligne en colonne.
    Par contre je ne connais pas egroupware, c'est plutôt une solution sql spécifique à mysql, je ne sais pas si ça pourra t'aider.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    merci skuatamad, ça marche

    Sauf que si le champ 'hebergement' n'est pas rempli j'aurai en reponse:
    cal_id=1 group_concat=casse croute,voiture

    On ne peut pas deconcatener pour avoir le champ vide?

    voici la requete ( j'utilise LIKE pour ne prendre que les champs personnalises qui m'interressent)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select egw_cal.cal_id,
    egw_cal.cal_title,
    egw_cal.cal_description,
    egw_cal.cal_location,
    group_concat(egw_cal_extra.cal_extra_value)
    from egw_cal, egw_cal_extra
    where egw_cal.cal_id=egw_cal_extra.cal_id
    and (egw_cal_extra.cal_extra_name like '%repas%' or egw_cal_extra.cal_extra_name like '%hebergement%' or egw_cal_extra.cal_extra_name like '%transport%')
    group by egw_cal.cal_id

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 70
    Points
    70
    Par défaut
    Et si tu passe " %repas%", '%hebergement%, '%transport%' en paramètre, ansi si c vide ou érroné il n'y aurait pas de reponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT egw_cal.cal_id,
    egw_cal.cal_title,
    egw_cal.cal_description,
    egw_cal.cal_location,
    group_concat(egw_cal_extra.cal_extra_value)
    FROM egw_cal, egw_cal_extra
    WHERE egw_cal.cal_id=egw_cal_extra.cal_id
    AND (egw_cal_extra.cal_extra_name LIKE '%?%' )
    GROUP BY egw_cal.cal_id

Discussions similaires

  1. [Access-VBA] Requête UNION avec tables liées
    Par adriano057 dans le forum Access
    Réponses: 4
    Dernier message: 28/07/2006, 12h11
  2. Requete Table croisée ?
    Par zorglob dans le forum Oracle
    Réponses: 2
    Dernier message: 22/12/2005, 12h18
  3. Access 2003 - Tables liees
    Par Igricheff dans le forum Access
    Réponses: 6
    Dernier message: 17/11/2004, 12h44
  4. question sur les requetes table héritée
    Par champion dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 30/08/2004, 14h19
  5. [VB6] [ADO] Pb ajout enregistrement table liée
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/10/2002, 11h49

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