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
Eri vicino.
Per prima cosa esegui il join come di consueto, quindi seleziona tutte le righe per le quali un not null
la riga in Y è infatti null
, quindi sei sicuro che ci sia una "nessuna corrispondenza" e non solo un null
valore in Y.
Nota anche l'errore di battitura (poiché corretto) che hai fatto nella query:
LEFT OUTER JOIN Y AS
-- should be
LEFT OUTER JOIN Y ON
-- This however is allowed
LEFT OUTER JOIN table2 as Y ON ....