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

Laravel PHP Discussion :

Laravel - query builder - sous requete dans la meme table


Sujet :

Laravel PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 3
    Par défaut Laravel - query builder - sous requete dans la meme table
    Bonjour,

    Je viens vers vous car cela fait deux jours que je m'arrache les cheveux sur une question :s

    J'ai une table qui ressemble à cela:
    |----------------------------|
    | table_codepostal |
    |----------------------------|
    | codepostal_id |
    | departement_id |
    |----------------------------|

    Et en partant d'un code postal, j'aimerais retrouver tous les codes postaux qui font parti du même département.
    Mais je ne comprend pas le mécanisme dans query builder qui pourrais me permettre d'effectuer une sous requête pour:
    1- récupérer l'id du département du code postal recherché
    2- récupérer les id des codes postaux faisant parti de ce département.

    J'espère que j'ai été bien clair.
    Si vous avez besoin de précisions, n'hésitez pas, je répondrais au plus vite.

    Merci par avance

    Ps: la version de laravel utilisée est la 5

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Tu peux utiliser Eloquent de façon très basique cfr: la doc de Laravel.

    Donc ceci est faisable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql = '
    SELECT t1.codepostal_id FROM table_codepostal t1
    	INNER JOIN table_codepostal t2
    		ON t1.departement_id = t2.departement_id ';
     
     
    $results = DB::select($sql);

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 3
    Par défaut
    Salut Pylos,

    Merci beaucoup pour ton aide ... effectivement je cherchais trop compliqué :s
    J'ai réussi a solutionner mon problème grâce à ton code en utilisant des alias pour faire la jointure.
    Mais j'ai préférer tout retranscrire en query builder pour garder une certaine unité dans mon code.

    Si ça peu aider quelqu'un d'autre qui galère sur le même problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $codepostal =" .... récupéré dans le formulaire"
     
    $query = DB::table('table_codepostal as table_codepostal1');
    $query->where('table_codepostal1.codepostal_id', $codepostal);
    $query->join('table_codepostal as table_codepostal2', 'table_codepostal1.departement_id', '=', 'table_codepostal2.departement_id');
    $query->select('table_codepostal2.codepostal_id');
     
    $results = $query->get();

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Alors ça je pourrais jamais le comprendre, enfin.....

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 3
    Par défaut
    Beh,

    Pour ca o_O :
    Note: The Laravel query builder uses PDO parameter binding throughout to protect your application against SQL injection attacks. There is no need to clean strings being passed as bindings.
    Après, je suis peut être trop enclin à suivre a la lettre ce que je lis sur les docs...

    ( Ça me permet aussi de découper ma requête de façon conditionnelle; j'ai gros d'paramètres à prendre en compte pour générer un "moteur de recherche" dans ma base )

    Mais je ne suis pas non plus obtus si il y à plus d'avantages à utiliser directement l'SQL ?

  6. #6
    Membre éclairé Avatar de PIEPLU
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    507
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 507
    Par défaut
    Salut.

    J'ai tenté de faire ta solution et je n'y suis pas parvenu

    Voici mon cas, proche du tien :

    J'ai une table 'messages' avec dedans des messages privés que les utilisateurs s'envoient.

    La structure est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id ; key (identique si on répond à un message) ; user1_id ; user2_id, created_at (date de la création du message)
    L'idée est de ressortir les messages en les groupant par "key"

    Le souci, si je fais un group by, il me renvoi la première ligne qu'il trouve alors que moi, j'aimerais que ce soit le dernier message (created_at desc, limité à 1)

    Tout ça, en une requête...

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] pb d'appel à une valeur externe dans une requete query builder sous vs 2008
    Par rafamerci dans le forum Visual Studio
    Réponses: 1
    Dernier message: 24/02/2014, 19h43
  2. requete dans une meme table
    Par wade dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 09/07/2008, 13h33
  3. sous requete sur la meme table
    Par ricault dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/05/2007, 18h40
  4. [SQL-Server] Sous requete dans une procédure stockée
    Par Worldofdada dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 09/02/2006, 11h18
  5. Sous-requete dans un etat
    Par kbh dans le forum Access
    Réponses: 5
    Dernier message: 09/11/2005, 09h05

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