Version complète: sur le forum Webmaster Hub : champs liés entre 2 tables
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
Anonymus
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

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


Dadou
je n'ai pas testé mais :

CODE
SELECT
    DISTiNCT product.p_id

FROM
    product,
    product_assoc

WHERE
    product_assoc.passoc_id <> 3
Portekoi
Salut,

Tu peux passer par une sous requête?

Se serait le plus simple smile.gif


Portekoi
Portekoi
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 :

SQL
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' smile.gif
Dadou
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

SQL
SELECT * FROM product WHERE p_id NOT IN (SELECT p_id FROM product_assoc WHERE passoc_id = 3)
Anonymus
3, c'etait pour l'exemple, y'a plus de 2000 produits, et autant de prod. associés, ca va faire un sacré tableau wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.