Използване на NOT IN:
SELECT w.*
FROM WIDGET w
WHERE w.widget_id NOT IN (SELECT c.widget
FROM CHOSEN c
WHERE c.user_id = $user_id)
Използване на NOT EXISTS:
SELECT w.*
FROM WIDGET w
WHERE NOT EXISTS (SELECT NULL
FROM CHOSEN c
WHERE c.widget_id = w.widget_id
AND c.user_id = $user_id)
ЛЯВО ПРИСЪЕДИНЯВАНЕ/Е НЯЛО:
SELECT w.*
FROM WIDGET w
LEFT JOIN CHOSEN c ON c.widget_id = w.widget
AND c.user_id = $user_id
WHERE w.widget IS NULL
Ефективност:
Ако Сравнените колони (widget_id в която и да е таблица) не могат да се нулират, LEFT JOIN/IS NULL се представя най-добре в MySQL . Ако колоните са нулеви (стойността може да е NULL), NOT IN или NOT EXISTS се представят по-добре .