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

Symfony PHP Discussion :

méthode de sous-requête


Sujet :

Symfony PHP

Vue hybride

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 47
    Par défaut méthode de sous-requête
    Bonjour,


    alors voila j'ai une petite question à soumettre,

    j'ai une table contact, reliée à deux autres tables : entreprise et action.

    en gros action contient contact_id et contact contient ets_id.
    j'aimerais récupéré grâce à propel l'entreprise du contact ayant fait une action ...

    j'ai vu l'utilisation de sfPropelCriteriaImpersonator mais j'aimerai limiter au maximum l'utilisation de plugins et donc j'aimerai savoir si y'a un moyen de le récupérer simplement!

    Merci à vous!

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Bonjour,

    Est-ce que tu peux éclaircir un peu plus les relations entre tes objets ?
    Et quel object tu détiens au départ?
    Parce que j'ai du mal avec 'l'entreprise du contact ayant fait une action ...
    ' .

  3. #3
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut
    Si j'ai bien compris le schéma de ta base pourquoi une sous requette et non pas une simple jointure ?

    en gros si l'dentifiant de l'action est déja connue ( récuperé du post ou du get ou de ....) Normalement tu doit aboutir à une requette de genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT * FROM entreprise E,contact T,action A
    WHERE A.contact_id = C.contact_id
    AND C.ets_id = E.ets_id 
    AND C.ACTION_ID = $id_action
    Donc tu peut faire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //instanciation de la classe Criteria
    $c = new Criteria() ;
     
    //Ajouter un where
    $c->add(ActionPeer::ACTION_ID, $id_action) ;
     
    //Ajouter une jointure naturelle entre la table entreprise et contact
    $c->addJoin(EntreprisePeer::ETS_ID,ContactPeer::ETS_ID,Criteria::INNER_JOIN);
     
    //Ajouter une jointure naturelle entre la table action et contact
    $c->addJoin(ActionPeer::CONTACT_ID,ContactPeer::CONTACT_ID,Criteria::INNER_JOIN);
     
    //récuperation de l'entreprise 
    $entreprise = EntreprisePeer::doSelectOne($c) ;
    Avec $id_action => la valeur du contact récupéré
    ActionPeer::ACTION_ID => l'attribut statique généré par propel

    voila a+

Discussions similaires

  1. Quelle méthode si pas de sous-requête dans FROM clause
    Par ehochedez dans le forum Requêtes
    Réponses: 7
    Dernier message: 06/05/2012, 20h11
  2. Problème DBExpress et sous requêtes ???
    Par Trulane dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/03/2004, 15h40
  3. Requêtes et sous requêtes
    Par lau2nyce dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/03/2004, 16h14
  4. suppression avec sous requête conditionnelle
    Par melmel dans le forum Requêtes
    Réponses: 8
    Dernier message: 19/03/2004, 00h20
  5. Réponses: 3
    Dernier message: 18/05/2003, 01h16

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