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
Byłeś blisko.
Najpierw wykonaj łączenie w normalny sposób, a następnie zaznacz wszystkie wiersze, dla których not null
wiersz w Y jest w rzeczywistości null
, więc masz pewność, że istnieje „brak dopasowania”, a nie tylko null
wartość w Y.
Zwróć także uwagę na literówkę (od momentu poprawienia) popełnioną w zapytaniu:
LEFT OUTER JOIN Y AS
-- should be
LEFT OUTER JOIN Y ON
-- This however is allowed
LEFT OUTER JOIN table2 as Y ON ....