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 :

Requête pour extraire un champ Objet


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Requête pour extraire un champ Objet
    Bonjour à tous,

    Je suis acutellement en train d'essayer de faire des requête DQL, mais j'ai énormément du mal à faire des requêtes à la main pour des soucis d'optimisation.

    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $query = $em->createQuery('SELECT r.user FROM Request r WHERE r.user NOT IN (SELECT c.worker FROM Contract c WHERE c.project = ?1)');
    $query->setParameter(1, $project);
    $candidates = $query->getResult();
    En gros j'aimerais récupérer sous forme d'objet un User. Cette user est présent dans l'objet Request (donc dans la table Request j'ai un champs user_id). Worker est également un user mais dans l'objet Contract.

    Voici l'erreur que j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Semantical Error] line 0, col 9 near 'user FROM Request': Error: Invalid PathExpression. Must be a StateFieldPathExpression.
    D'après ce que j'ai compris, on ne peut récupérer un champs partiel. Du coup, même si ce n'est pas vraiment ce que je veux, j'ai tout simplement fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query = $em->createQuery('SELECT r FROM Request r WHERE r.user NOT IN (SELECT c.worker FROM Contract c WHERE c.project = ?1)');
    Cependant maitenant j'ai également la même erreur au niveau du sous reqûete, et là je bloque complétement, je ne sais pas comment m'y prendre autrement.

    Quelqu'un a t-il une idée svp ?

    merci.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'ai toujours pas reussi, et j'aurais besoin d'une solution si possible, je me permet de re-up ce sujet x)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    essaie avec des alias
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT u1 
     FROM Request r 
     JOIN r.user u1 
     WHERE u1 NOT IN (
       SELECT u2
       FROM Contract c 
       JOIN c.worker u2
       WHERE c.project = ?1)
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT u1 
     FROM Request r 
     JOIN r.user u1 
     WHERE u1.id NOT IN (
       SELECT u2.id
       FROM Contract c 
       JOIN c.worker u2
       WHERE c.project = ?1)

Discussions similaires

  1. Requête pour modifier un champs TIME
    Par Gouyon dans le forum Requêtes
    Réponses: 6
    Dernier message: 21/04/2009, 17h26
  2. requête pour trouver les champs sans doublons
    Par kuhnden dans le forum Access
    Réponses: 2
    Dernier message: 28/03/2008, 18h34
  3. requête pour extraire des caractères d'un champ
    Par hellyjlj dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/11/2007, 15h32
  4. commande pour extraire un champ
    Par waldoun dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 10/05/2007, 15h42
  5. Requête pour extraire des départements
    Par Ardechoise dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 27/04/2007, 11h20

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