Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a melhor maneira de usar LEFT OUTER JOIN para verificar a inexistência de linhas relacionadas

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 ....