Enregistrements non compris dans une jointure SQL


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Enregistrements non compris dans une jointure SQL

Message le Mer Jan 30, 2008 17:07

Bonjour, j'ai actuellement une table articles et une table articles_categories. Chaque article peut se retrouver dans plusieurs catégories (par exemple un hôtel peut ressortir dans la catégorie hotel, hotel 3 étoiles, promotions d'hotels...)

J'ai donc une jointure entre 2 tables pour retrouver pour une catégorie tous les enregistrements y figurant, par exemple : "select idarticle from articles_categories, articles where idarticle=id and idcategorie=5"

Jusqu'ici pas de problème.
Il se peut qu'un article ne se retrouve dans aucune catégorie (pour un lien dans un article ou un complément d'un autre article). je souhaiterais donc avec une requête lister tous les enregistrements sans catégorie assignée, et c'est là que je sèche. Comment je peux faire une jointure entre 2 tables pour ressortir tous les enregistrements ne faisant pas partie de cette jointure?

Merci d'avance :)

Selection A
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 279
Inscription: 14 Mar 2005

Message le Mer Jan 30, 2008 17:50

Code: Tout sélectionner
select A.id from table1 A left join table2 B on A.id= B.id where  B.categorie IS NULL


Essaye un truc dans ce style !


blman
WRInaute accro
WRInaute accro
 
Messages: 3077
Inscription: 5 Sep 2003

Message le Mer Jan 30, 2008 17:54

Un truc comme ça devrait fonctionner. A vérifier dans la doc MySQL, parce que là, c'est du code pondu de mémoire.

Code: Tout sélectionner
SELECT idarticle FROM articles WHERE id NOT IN (SELECT idcategorie FROM articles_categories)


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Mer Jan 30, 2008 20:17

Ou alors, faire un LEFT JOIN et prendre ceux ou les enregistrements de droite IS NULL si ta version de mysql n'accepte pas les requêtes imbriquées.


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Jeu Jan 31, 2008 16:39

Bonjour j'ai un peu essayé les différentes façons, celle que j'ai retenu est
"select idarticle from articles left join articles_categories on articles.idarticle=articles_categories.idarticle where idcategorie IS NULL"

Merci à vous.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités