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

ORM PHP Discussion :

jointure sur table hérité


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut jointure sur table hérité
    bonjour,
    je cherche a faire une requete d'aggrégation sur 3 tables dont une qui est fille d'une table plus grosse, je ne comprends pas comment faire.
    mon schéma simplifier:
    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
    37
    38
    39
    40
     
    section:
      columns:
        name: string(50)
     
    user:
      columns:
        firstname: string(50)
        lastname: string(50)
        section_id: integer
      relations:
       section:
         foreignAlias: listuser
     
    asset:
       columns:
         type: string(50)
         name: string(50)
         user_id: integer
      relations:
        user:
           foreignAlias: listasset
     
    email:
       inheritance:
         extends: asset
         type: columns_aggregation
         keyField: type
         keyValue: email
      columns:
         serveur: string(50)
     
    email_historic:
      columns:
         email_id: integer
         date: date
         size: integer
      relations:
        email:
           foreignAlias: HistoricSize
    ce que je souhaite, c'est pour un mois la somme par section des boites mail, du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT s.name, sum(e.size)
    FROM section s
    LEFT JOIN user u ON u.section_id = s.id
    LEFT JOIN email e ON e.user_id = u.id
    GROUP BY s.name
    WHERE e.date="2001-06-01"
    j'ai créer la requete DQL suivante mais ça ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    ->SELECT('s.name, sum(e.size)')
    ->FROM('section s')
    ->leftJoin('s.listuser u')
    ->leftJoin('u.listasset e')
    ->leftJoin('e.HistoricSize')
    ->GROUPBY('s.name')
    ->where('e.date=?','2011-096-01')
    message d'erreur: Unknown relation alias HistoricSize

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Logique vu que "e" est l'objet asset et pas l'objet email...

    Je n'ai pas trop creusé l'héritage des relations. En principe, l'objet email devrait bénéficier des relations définies dans l'objet asset (mais pas le contraire). Par contre, je ne sais pas comment faire comprendre à l'objet user que ça relation pointe sur email et pas sur asset...

    Essaye un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ->SELECT('s.name, sum(e.size)')
    ->FROM('section s')
    ->leftJoin('s.listuser u')
    ->leftJoin('u.listasset e')
    ->leftJoin('email_historic h ON xxxxxxx')
    ->GROUPBY('s.name')
    ->where('e.date=?','2011-096-01')
    ->andWhere('e.type = ?','email')

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/05/2008, 11h56
  2. Jointures sur table de liaison (n-n) renvoie des doublons
    Par MICHEL_R dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2008, 14h34
  3. Réponses: 3
    Dernier message: 08/11/2006, 23h04
  4. [FB1.5]Vue avec jointure sur tables ?
    Par Sitting Bull dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2004, 17h07
  5. jointure sur table et procedure stocké
    Par pram dans le forum SQL
    Réponses: 3
    Dernier message: 18/11/2004, 21h56

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