Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle est la meilleure façon d'utiliser LEFT OUTER JOIN pour vérifier la non-existence de lignes associées

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

Vous étiez proche.

Faites d'abord la jointure normalement, puis sélectionnez toutes les lignes pour lesquelles un not null la ligne dans Y est en fait null , vous êtes donc sûr qu'il y a un "pas de correspondance" et pas seulement un null valeur en Y.

Notez également la faute de frappe (corrigée depuis) ​​que vous avez faite dans la requête :

LEFT OUTER JOIN Y AS
-- should be
LEFT OUTER JOIN Y ON
-- This however is allowed
LEFT OUTER JOIN table2 as Y ON ....