Preciso de ajuda com esta consulta. Eu tenho registros na tabela de clientes
Main table - M
+---------+---------+----------+
| company | Account | Active |
+---------+---------+----------+
| A | A123 | Active |
| A | A123 | InActive |
| B | B123 | Inactive |
+---------+---------+----------+
Reference table - R
+---------+---------+
| company | Account |
+---------+---------+
| A | A123 |
| B | B123 |
| C | C123 |
+---------+---------+
Puxe todos os registros de M que existem em R, mas estão inativos. O problema aqui é que uma empresa pode ter tanto uma conta inativa quanto uma ativa em M, quero puxar apenas aquelas que só tem conta inativa e nenhuma conta ativa. Então, das duas tabelas, devo obter
+---------+---------+----------+
| company | Account | Active |
+---------+---------+----------+
| B | B123 | Inactive |
+---------+---------+----------+
Porque enquanto A existe em R, ele também tem um status de Conta Ativa, então devo excluí-lo.
Portanto, presumo que possa haver apenas uma linha ativa e uma inativa. Aqui está uma solução apenas com JOINs. Se puder haver várias linhas (ativas), você deve usar
EXISTS
, como @ypercube já mencionou em seu comentário.Como comentou @ypercube: não ficou totalmente claro se você não quer nenhuma conta ativa para invalidar a empresa ou apenas uma conta ativa correspondente .
Eu fui com
matching
conta na minha consulta. RemovaAND M2.account = R.account
da condição JOIN se desejarany
.