Enregistrements non compris dans une jointure SQL

WRInaute discret
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 :)
 
WRInaute accro
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:
SELECT idarticle FROM articles WHERE id NOT IN (SELECT idcategorie FROM articles_categories)
 
WRInaute accro
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.
 
WRInaute discret
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.
 
Discussions similaires
Haut