[Select] Problème de multi rows
Bonjour,
je me cogne à une requête qui parait assez simple mais que je n'arrive pas à réaliser.
J'ai 2 tables :
Product
--------
id_product = PK
...
Package_Language
------------------
id_product
id_language
pk = id_product + id_language
Ma requete est tout simplement de sortir la liste des id_product
qui sont en FRA et en NLD.
Une autre ceux qui ont FRA et PAS NLD
Et une troisième, ceux qui ont NLD et PAS FRA
J'ai essayé de faire ceci :
FRA + NLD
Code:
1 2 3 4 5 6 7 8
|
select distinct p.id_product
from package_language t1
inner join package_language t2 with(no lock) on t1.id_product = t2.id_product
inner join product p with(nolock) on p.id_product = t1.id_product
where t1.id_language = 'FRA'
and t2.id_language = 'NLD'
and p.id_product_type = 1 |
=>2281 id_product FRA + NLD
FRA et PAS NLD
Code:
1 2 3 4 5 6 7 8
|
select distinct p.id_product
from package_language t1
inner join package_language t2 with(no lock) on t1.id_product = t2.id_product
inner join product p with(nolock) on p.id_product = t1.id_product
where t1.id_language = 'FRA'
and t2.id_anguage <> 'NLD'
and p.id_product_type = 1 |
=>13650 id_product FRA
NLD et PAS FRA
Code:
1 2 3 4 5 6 7 8
|
select distinct p.id_product
from package_language t1
inner join package_language t2 with(no lock) on t1.id_product = t2.id_product
inner join product p with(nolock) on p.id_product = t1.id_product
where t1.id_language <>'FRA'
and t2.id_anguage = 'NLD'
and p.id_product_type = 1 |
=>8171 id_product NLD
Je sais que c'est faux, soit d'un point de vue logique, soit d'un point de vue syntaxique car si je prends le total d'id_product différents dans la table package_language pour un id_product_type = 1 je trouve
Code:
1 2 3 4 5
| select distinct t1.id_product
from package_language t1
inner join package_language t2 with(nolock) on t1.id_product = t2.id_product
inner join product p with(nolock) on p.id_product = t1.id_product
where p.id_product_type= 1 |
Résultat : 19651 id_product différents
Donc FRA (sans NLD) + NLD (sans FRA) + FRA/NLD = 24102 ALors que je n'ai que 19 651 id_product différents dans ma table ...
Donc c'est clair que mes requêtes ne fonctionnent pas
Pouvez vous éclaircir ma lanterne svp?
Merci d'avance ;)