Salut
Je suis face à un problème de conception.
J'ai une table qui rassemble des découpages géographiques (pays, rgion, département....) de cette manière : un id_decoup, un nom_decoup, un type_decoup et un id_decoup_parent.
Ensuite j'ai une table de zone : id_zone, nom_zone.
Ensuite j'ai une table de contenu de zone qui fait le lien entre les deux premières : id_zone, id_decoup, effet.
Mon souci vient maintenant : je voudrais trouver tous les id_decoup qui sont défini dans la table de contenu sauf ceux pour qui la collone "effet" est à 1 (la valeur par défaut étant 0).
J'en suis à cette requête là, mais ça marche pas :
J'obtiens 57 lignes, alors qu'il ne m'en faut que 56. Dans ma table de zone contenu j'ai mis 1 pour le id de St Nazaire
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
16
17
18
19
20
21
22
23 SELECT * from (select distinct DC.id_zone, DC.nom_zone from zone_contenu C inner join zone_test DP on dp.id_zone = C.id_Decoupage inner join zone_test DR on dr.id_zone = C.id_Decoupage or DR.zone_Parent = DP.id_zone inner join zone_test DD on dd.id_zone = C.id_Decoupage or DD.zone_Parent = DR.id_zone inner join zone_test DA on da.id_zone = C.id_Decoupage or DA.zone_Parent = DD.id_zone inner join zone_test DC on dc.id_zone = C.id_Decoupage or DC.zone_Parent = DA.id_zone where c.id_zone = 4 and DC.type_zone = 5 and C.Effet = 0) as T1 left join (select distinct DC.id_zone, DC.nom_zone from zone_contenu C inner join zone_test DP on dp.id_zone = C.id_Decoupage inner join zone_test DR on dr.id_zone = C.id_Decoupage or DR.zone_Parent = DP.id_zone inner join zone_test DD on dd.id_zone = C.id_Decoupage or DD.zone_Parent = DR.id_zone inner join zone_test DA on da.id_zone = C.id_Decoupage or DA.zone_Parent = DD.id_zone inner join zone_test DC on dc.id_zone = C.id_Decoupage or DC.zone_Parent = DA.id_zone where c.id_zone = 4 and DC.type_zone = 5 and C.Effet = 1) as T2 on T2.id_zone = T1.id_zone AND T2.id_zone is null
Pouvez vous m'aider ?
Partager