Selecione linhas que não estão presentes em outra tabela
Eu tenho duas tabelas postgresql:
table name column names
----------- ------------------------
login_log ip | etc.
ip_location ip | location | hostname | etc.
Quero que todos os endereços IP sejamlogin_log
que não tem uma linha emip_location
.
Eu tentei esta consulta, mas lança um erro de sintaxe.
SELECT login_log.ip
FROM login_log
WHERE NOT EXIST (SELECT ip_location.ip
FROM ip_location
WHERE login_log.ip = ip_location.ip)
ERROR: syntax error at or near "SELECT"
LINE 3: WHERE NOT EXIST (SELECT ip_location.ip`
Também estou me perguntando se essa consulta (com ajustes para que funcione) é a consulta com melhor desempenho para essa finalidade.