requête mysql pour sélectionner tout sauf

j'ai deux tables mysql.

la première est appelée "choisi" et se compose d'identité, user_id, et widget_id champs.

l'autre est appelé "widgets" et comprend plusieurs choses, y compris widget_id.

j'ai créé un filtre de sorte que l'utilisateur peut afficher les widgets qu'il/elle a choisi, ou des widgets qu'il/elle n'a pas choisi. pour ceux qu'il a choisis, j'utilise ceci:

SELECT * 
  FROM widgets, chosen 
 WHERE chosen.user_id = $user_id 
   AND chosen.widget_id = widgets.widget_id

cependant, je ne peux pas comprendre comment afficher ceux qu'il/elle n'a pas choisi. cela ne fonctionne pas (affiche tout):

SELECT * 
  FROM widgets, chosen 
 WHERE !(    chosen.user_id = $user_id 
         AND chosen.widget_id = widgets.widget_id)

comment puis-je faire cela?

OriginalL'auteur vee | 2010-12-10