SELECT count(id) FROM X
LEFT OUTER JOIN Y ON (y.X_id = X.id AND y.foo = 'bar')
WHERE y.X_id is null
Você estava perto.
Primeiro faça a junção normalmente, então selecione todas as linhas para as quais um
not null
linha em Y é de fato null
, então você tem certeza de que há um "sem correspondência" e não apenas um null
valor em Y. Observe também o erro de digitação (já corrigido) que você fez na consulta:
LEFT OUTER JOIN Y AS
-- should be
LEFT OUTER JOIN Y ON
-- This however is allowed
LEFT OUTER JOIN table2 as Y ON ....