champs liés entre 2 tables (mysql)

champs liés entre 2 tables (mysql) - SQL/NoSQL - Programmation

Marsh Posté le 17-04-2008 à 00:36:31    

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 ?
( sachant que la table fait plusieurs milliers de produits, et que '3' n'est pas 'en dur', mais qu'il y a plusieurs centaines de 'products' associés dans la table 'products_assoc :)
 
Merci d'avance
 

Code :
  1. --product--
  2. p_id
  3. 1
  4. 2
  5. 3
  6. 4
  7. 5
  8. 6
  9. --product_assoc--
  10. p_id, passoc_id
  11. 3 | 4
  12. 3 | 5
  13. 4 | 3
  14. 5 | 3

Reply

Marsh Posté le 17-04-2008 à 00:36:31   

Reply

Marsh Posté le 17-04-2008 à 07:55:34    

Un truc du genre ...  
 
select * from product  where p_id not in  
(select passo_id from product-assoc)
 
ou
 
select * from p.product  
where not exists  
(select 'X' from product-assoc a  
where a.passo_id = p.p_id)
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
Reply

Marsh Posté le 17-04-2008 à 11:08:19    

Merci pour la réponse ;)
 
Je n'ai pas encore figé les données dans la 2e table, je ne sais pas si je vais pas modifier, pour ne pas afficher les id dans la table 'product_assoc', dans le champ 'passoc_id' quand ils sont déjà dans la table 'p_id'.
 
Je teste tes requètes,  
merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed