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

MySQL Discussion :

Trouver des données avec valeurs dans une autre table


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 25
    Par défaut Trouver des données avec valeurs dans une autre table
    Bonjour,

    Mon problème est le suivant :

    J'ai 2 tables acv_project et acv_product.

    Mes projets sont associés à des utilisateurs via la clé green_user_id.
    Chaque projet a un product dans la table acv_product.
    Chaque product est lié à un projet via la clé project_id et a une masse.

    Je cherche à retrouver en partant de green_user_id tous les projets de l'utilisateur en question qui ont un produit avec une masse différente de 0.

    Trouver tous les projets de l'utilisateur je sais faire. Trouver tous les produits ayant une masse différente de 0 aussi.

    Mais là je vois pas comment faire.

    Et dans l'idéal il faudrait que je le fasse avec Doctrine parce que c'est dans le cadre d'un projet Symfony.

    Si quelqu'un sait comment faire ça ?

    Merci

    Je vous mets les structures de mes 2 tables project et product.Nom : TableProduct.png
Affichages : 255
Taille : 102,6 KoNom : TableProject.png
Affichages : 238
Taille : 186,1 Ko

  2. #2
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 346
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select green_user_id , project_id , prod.weight 
    from acv_project p 
    join acv_product prod on prod.project_id = p.id
    where prod.weight <> 0

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 25
    Par défaut
    Merci, quelqu'un saurait-il comment je fais comprendre cette requete SQL à Doctrine maintenant ?

  4. #4
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 346

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 25
    Par défaut
    Je suis désolé mais j'ai beau lire toutes les docs que tu m'as données, je n'y comprends absolument rien.

    Ca propose notamment d'écrire ça comme ça :

    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
    public function findOneByIdJoinedToCategory($id)
    {
        $query = $this->getEntityManager()
            ->createQuery(
                'SELECT p, c FROM AppBundle:Product p
                JOIN p.category c
                WHERE p.id = :id'
            )->setParameter('id', $id);
     
        try {
            return $query->getSingleResult();
        } catch (\Doctrine\ORM\NoResultException $e) {
            return null;
        }
    }
    Mais dans cet exemple, je vois pas comment adapter à mon cas précis

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2013
    Messages : 25
    Par défaut
    Finalement résolu en passant mon SQL brut et en mettant bindValue pour passer mon userId en paramètre comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $rawSql = "select p.name, p.id from acv_project p join acv_product prod on prod.project_id = p.id where prod.weight <> 0 and p.green_user_id = :userId ORDER BY p.name";
     
            $stmt = $em->getConnection()->prepare($rawSql);
            $stmt->bindValue("userId", $userId);
            $stmt->execute();
     
            $projects = $stmt->fetchAll();

Discussions similaires

  1. Mettre des données avec pourcentage dans une table
    Par issakha_dione dans le forum Débutez
    Réponses: 1
    Dernier message: 08/06/2019, 19h22
  2. [AC-2010] Trouver une valeur dans une autre table - multi-colonnes
    Par Jojosyl dans le forum Access
    Réponses: 3
    Dernier message: 02/08/2017, 09h02
  3. Trouver une valeur dans une autre table
    Par steve15 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/11/2016, 09h34
  4. Réponses: 15
    Dernier message: 21/06/2016, 17h57
  5. Réponses: 4
    Dernier message: 28/03/2014, 16h32

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