Aller au contenu

Sujets conseillés

Posté

Bonjour,

Comment fait pour que dans le cas ci-dessous, les produits de la table product p_id 1, 2, 3, 6 sortent, mais pas les p_id 4 et 5, parce que liés à 3 dans la 2e table ?

Merci d'avance

--product--
p_id
1
2
3
4
5
6
--product_assoc--
p_id, passoc_id
3 | 4
3 | 5
4 | 3
5 | 3

Posté

je n'ai pas testé mais :

SELECT
DISTiNCT product.p_id

FROM
product,
product_assoc

WHERE
product_assoc.passoc_id <> 3

Posté

Je complète :

Si '3' était pour l'exemple, et que tu peux en avoir plusieurs dans ce cas là, créé une table contenant les 'passoc_id' à éviter puis :

Select 
a.*
FROM product a
INNER JOIN product_assoc b ON a.p_id = b.p_id
INNER JOIN Tab3 c On c.passoc_id <> b.passoc_id
Where .....

Ca devrait fonctionner ou alors en sous requetes si '3' est à inscrire en 'dur' :)

Posté

Dedieux, ne pas ouvrir le PC le matin en ce levant, non seulement j'écris une requête qui marche pas, mais en plus cela m'a travaillé dans le train, voila la bonne

SELECT * FROM product WHERE p_id NOT IN (SELECT p_id FROM product_assoc WHERE passoc_id = 3)

Posté

3, c'etait pour l'exemple, y'a plus de 2000 produits, et autant de prod. associés, ca va faire un sacré tableau ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...