cognotte Posté 5 Décembre 2006 Partager Posté 5 Décembre 2006 Bonjour, Je vous explique mon titre un peu étrange. Voila pour simplifier j'ai une table avec 3 champs : - un id auto incrémenté (id) - un id clef de liaison vers la table 1 (_table1) - un id clef de liaison vers la table 2 (_table2) exemple : id _table1 _table2 1 1 12 2 13 3 14 2 25 4 16 1 2 Je voudrais récupérer les lignes ou _table1 est définie pour les deux valeurs de _table2. (ici récupérer _table1 = 1 et _table1 = 2) Je pensais que l'inverse de DISTINCT fonctionnerais, mais j'arrive pas a faire une requête satisfaisante. Je ne peut pas non plus faire de requêtes imbriquées. Quelqu'un aurait une piste ? Ai-je été assez claire ? Ben Lien vers le commentaire Partager sur d’autres sites More sharing options...
baboon Posté 5 Décembre 2006 Partager Posté 5 Décembre 2006 Bonjour, j'ai eu un peu de mal à comprendre ta question, mais je crois que pour ta requête, ce serait un truc du genre : SELECT * FROM `_table0` WHERE (id_table2 =id_table1) group by id_table2 Avce pour données d'entrées : si _table0 est ta table qui conteint les 3 clés et les données suivantes (comme tu l'a enoncé) :id id_table1 id_table21 1 12 2 13 3 14 2 25 4 16 1 2 Ce qui donne en resultat : id id_table1 id_table21 1 14 2 2 On a bien donc ce que tu souhaites : récupérer id_table1 = 1 et id_table1 = 2Le résultat est groupé sur le champ id_table2 et donne 2 réponses...Bonne soirée En espérant avoir été clair... Lien vers le commentaire Partager sur d’autres sites More sharing options...
cognotte Posté 6 Décembre 2006 Auteur Partager Posté 6 Décembre 2006 Merci de ta réponse, Mais je crois que je n'ai malheureusement pas été assez clair. Je vais imager : Ma table est en fait une table de commande comportant une référence a un client et une référence a un produit. Je voudrais donc savoir par exemple quels sont les clients qui ont commandé le produit X ET le produit Y. id client produit1 cA X2 cB X3 cA Y4 cC Y5 cD Y6 cE X7 cC X8 cF Y9 cD X Donc la le résultat souhaité serait cA, cC, cD; Voila j'espère avoir été un peu plus clair. Ben Lien vers le commentaire Partager sur d’autres sites More sharing options...
cognotte Posté 6 Décembre 2006 Auteur Partager Posté 6 Décembre 2006 Je crois avoir un début de solution : SELECT COUNT( * ) AS nombre, clientFROM `table`WHERE produitIN ( X, Y )GROUP BY produit Ca me donne le nombre de clients qui ont les deux produits, maintenant il me manque la liste de ces clients. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant