Requête SQL Server - renvoie la valeur null si aucune correspondance

Je suis confronté à un problème que je ne peux pas comprendre pourquoi. Je suis en train d'écrire une requête qui joint deux tables, dont un match ne peut pas être trouvé dans un tableau. Tels que:

SELECT 
    Table1.IDField, Table2.IDField
FROM 
    Table1
LEFT OUTER JOIN 
    Table2 ON Table1.PersonID = Table2.PersonID
WHERE 
    (Table1.IDField = '12345')
    AND (Table2.Category = 'Foo')

Si il n'y a pas de correspondance dans la Table2ce n'est pas de retourner quoi que ce soit. Cependant, j'ai besoin qu'il suffit de retourner la valeur NULL pour cette colonne si il n'y a pas de match et encore retourner la valeur de Table1.

J'ai changé le JOIN avec tout ce que je peux penser, mais en vain.

Table2.Category peut contenir plusieurs autres valeurs, donc en faisant un OR IS NULL type d'opération ne fonctionne pas.

Donc, si il ya pas de match pour Table2.Category = 'Foo'je suis toujours dans le besoin de retour:

Table1 | Table2
----------------
 12345 |  NULL

Des suggestions?

source d'informationauteur BrewingDev