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

Doctrine2 PHP Discussion :

Requête SQL avec jointures


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 184
    Par défaut Requête SQL avec jointures
    Bonjour,

    J'ai une requête SQL avec des jointures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT f.id, f.nom
    FROM conffilieres f
      LEFT OUTER JOIN confbriques b
      ON f.id = b.filiere_id
        LEFT OUTER JOIN confapplications a
        ON b.id = a.brique_id
          LEFT OUTER JOIN confmeteos_confapplications ma
          ON a.id = ma.confapplications_id
            LEFT OUTER JOIN confmeteos m
            ON ma.confmeteos_id = m.id
    WHERE m.id = ID (passer en paramètre)
    Je voudrais la "convertir" en dql mais j'ai un soucis au niveau du dernier LEFT OUTER JOIN.

    Ce que j'ai fait :

    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
    public function findFilieresByMeteoClient($meteo_id)
    {
        $query = $this->_em->createQuery("
            SELECT f
            FROM MeteoApplisAdminBundle:ConfFilieres f
            LEFT JOIN MeteoApplisAdminBundle:ConfBriques b
            WITH f.id = b.filiere
            LEFT JOIN MeteoApplisAdminBundle:ConfApplications a
            WITH b.id = a.brique
     
            [...] (Il me manque cette partie)
     
            WHERE m.id = '$meteo_id'
        ");
     
        return $query->getResult();

    Je pense qu'il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LEFT JOIN MeteoApplisAdminBundle:ConfMeteos m
    WITH a.id = m.applications
    mais j'ai une erreur :

    [Semantical eRROR LINE o, cal 279 near applications WHERE: Error Invalid PathExpression.
    StateFieldPathExpression or SingleValuedAssociationField expected

    Est-ce que quelqu'un sait comment on fait vu que j'ai une relation manyToMany entre l'entité ConfApplications et ConfMeteos.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LEFT JOIN MeteoApplisAdminBundle:ConfMeteos m
    WITH a.id = m.applications
    C'est le m.applications qu'il n'aime pas je sais pas pourquoi..

    applications ce situe dans ma table météo et c'est un relation ManyToMany vers Applications, c'est une arrayCollection.

    Dans ma base de donnée à cause de la relation j'ai une table confmeteos_confapplications.

    Je peux pas m'en servir dans la requete ??

Discussions similaires

  1. Optimisation requête sql avec jointures n,n
    Par Invité dans le forum Requêtes
    Réponses: 15
    Dernier message: 13/11/2012, 11h30
  2. Requête sql avec jointure et table vide (ou tuple nulle)
    Par Aenur56 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 29/04/2010, 14h10
  3. Construction d'une requête SQL avec jointure
    Par Didiou35 dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/10/2009, 22h26
  4. Requête SQL avec jointure
    Par manu32320 dans le forum Zend_Db
    Réponses: 3
    Dernier message: 17/05/2009, 00h19
  5. Requête SQL avec jointure sur trois tables
    Par pit2121 dans le forum SQL
    Réponses: 0
    Dernier message: 19/05/2008, 20h24

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