|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
Bonjour,
Je souhaite faire une requête un peu compliquée. Je n'y arrive pas. Si vous pouviez m'aider... Voici le descriptif des tables : Code :
donc par exemple si on a : - une entite X donc le nom est "fac" - deux objects pour cette entité : "table", "vitre". - une liste qui comporte les éléments suivants : {"table","haricot","vitre","pomme", "poire"} Etant donné que les deux objects de "fac" font partie de la liste, l'id_entite de "fac" sera retourné. Si un seul des deux objects fait partie de la liste, on ne retourne rien pour cette entité. Et l'idée est de faire une requete qui rend ce type de résultat en fonction d'une liste. si vous savez comment faire, merci à vous parce-que je galère un peu la... Merci |
||
|
|
00
|
|
|
#2 | ||||
![]() ![]() |
Tu cherches donc toutes les entités associées à tous les éléments d'une liste dans la table dependance.
Commence par faire une requête qui va sélectionner toutes les lignes de dependance avec l'entité et un objet appartenant à la liste : Code :
Comme tu ne veux que les entités qui ne sont associées qu'au nombre d'éléments de la liste, il faut faire un groupage et ne retenir ceux sont le nombre d'éléments est égal au nombre d'éléments de la liste : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
oui !!! c'est presque ça sauf que having count(*) ne doit pas être figé. Il doit être égal au nombre d'object pour une entité donnée. Ainsi, on pourra déterminer toutes les entitées concernées.
comment on peut faire ? |
|
|
00
|
|
|
#4 | ||
![]() ![]() |
Citation:
Ton besoin d'origine était celui-ci : Citation:
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Par quel langage attaque tu ta bdd ? Php ?
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
ouais désolé j'explique pas bien
je recommence : on a par exemple ca : liste = {"pomme","poire","vitre","piston"} entité = {"1","2","3","4"} dependance = {"1"=>"pomme", "1"=>"poire", "2"=>"smiley", "3"=>"noix", "3" =>"smiley", "3"=>"vert","4" => "piston"} object = {"pomme","poire","vitre","noix","smiley"} on doit avoir comme resultats : 1 => s'affiche (car pomme et poire font partie de la liste et ces deux objects sont les seules dépendances de 1 ; 2 => n'apparaitra pas car "smiley" n'est pas dans la liste ; 3 =>n'apparaitra pas car "noix" est présent mais ni "smiley", ni "vert" ne le sont. 4 => s'affiche car "piston" est dans la liste et c'est l'unique dépendance de "4" la requête que tu m'as donnée fonctionne car elle permet de retourner les entités dont le nombre d'objects qui en dépendent vaut 2. mais je souhaite connaitre toutes les entitées dont les objects sont dans la liste. Je ne sais pas si c'est plus clair ? en fait à la fin il faudrait terminer la requête par qqch comme : HAVING COUNT(*) = (SELECT count(*) FROM dependance WHERE dependance.id_entite = entite.id_entite).... |
|
|
00
|
|
|
#7 | ||||
![]() ![]() |
Donc en fait tu veux les entités qui sont en dépendance avec des objects de la liste et qui n'aient pas d'autre dépendance que les object de la liste ?
Code :
Sélectionner les entités qui ont une dépendance avec les objets 'table' ou 'vitre' et pour lesquelles il n'existe pas de dépendance avec des objets autres que 'table' ou 'vitre'. Ça répond à ton besoin ? Peut-être même que ma requête précédente, légèrement modifiée fonctionne aussi : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 4 ![]() |
Je n'avais pas vu ça comme ça mais oui voilà !!!
Merci beaucoup |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com