Estou usando uma tabela com nome "pesquisas_respondidas" para verificar se um usuário já respondeu uma pesquisa. Por exemplo, no caso abaixo, o usuário com login "tiago" respondeu a pesquisa "minha pesquisa". TABELA: pesquisas_respondidas
|-------------------------------------|
| nome_pesquisa | login |
|-------------------------------------|
| minha pesquisa | tiago |
|-------------------------------------|
TABELA: pesquisas
|---------------------|
| nome_pesquisa |
|---------------------|
| minha pesquisa |
|---------------------|
Na tabela "pesquisas" estão os nomes de todas as pesquisas cadastradas no sistema.
Quero listar as pesquisas que o usuário não respondeu, e uso a sequinte SQL:
SELECT pesquisas.nome_pesquisa
FROM pesquisas
WHERE pesquisas.nome_pesquisa NOT
IN(
SELECT pesquisas_respondidas.nome_pesquisa
FROM pesquisas_respondidas
WHERE pesquisas_respondidas.nome_pesquisa='minha pesquisa'
AND pesquisas_respondidas.login='meu_login'
) O problema é que quando a tabela "pesquisas_respondidas" está vazia, o comando retorna um conjunto vazio. Eu esperava que voltasse todas as pesquisas, pois o usuário ainda não respondeu nenhuma. O mesmo comando funciona quando a tabela tem um ou mais registros inseridos. Por que não funciona quando a tabela está vazia?