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
Du warst nah dran.
Führen Sie zuerst den Join wie gewohnt durch und wählen Sie dann alle Zeilen aus, für die ein not null ist Zeile in Y ist tatsächlich null , sodass Sie sicher sind, dass es eine "keine Übereinstimmung" und nicht nur eine null gibt Wert in Y.
Beachten Sie auch den Tippfehler (inzwischen korrigiert), den Sie in der Abfrage gemacht haben:
LEFT OUTER JOIN Y AS
-- should be
LEFT OUTER JOIN Y ON
-- This however is allowed
LEFT OUTER JOIN table2 as Y ON ....