Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos do iMasters!
Conheci recentemente o comando INNER JOIN, por isso estou com dúvida.. Tenho o seguinte problema..
Possuo 3 tabelas no banco de dados.
As tabelas 'arquivos' e 'franqueados' estão ligadas por meio da tabela 'permissoes', ou seja, nesse tabela existe 'codigo_arquivo' e 'codigo_franqueado'.
Assim eu posso associar vários arquivos a 1 franqueado só, ou o contrário..
Exemplo:
arquivos:
nome: documento1.doc | codigo_arquivo: 1
nome: documento2.doc | codigo_arquivo: 2
nome: documento3.doc | codigo_arquivo: 3
nome: documento4.doc | codigo_arquivo: 4
franqueados:
nome: João | codigo_franqueado: 1
nome: Maria | codigo_franqueado: 2
nome: Augusto | codigo_franqueado: 3
permissoes:
codigo_arquivo: 1 | codigo_franqueado: 2 (arquivo documento1.doc liberado para o franqueado Maria)
codigo_arquivo: 2 | codigo_franqueado: 2 (arquivo documento2.doc liberado para o franqueado Maria)
codigo_arquivo: 4 | codigo_franqueado: 3 (arquivo documento4.doc liberado para o franqueado Augusto)
então rodo o seguinte SQL para a consulta:
SELECT * FROM permissoes INNER JOIN arquivos ON (permissoes.codigo_arquivo = arquivos.codigo_arquivo) WHERE ((codigo_franqueado LIKE "%AIlDOtYDKZp%"))
Os resultados são retornados normalmente.
Mas isso só mostra os arquivos que possuem o código registrado no banco 'permissoes'.
Agora eu quero exibir os arquivos que não tenham o 'codigo_arquivo' registrado na tabela 'permissoes'(seriam os arquivos liberados a todos os franqueados. No caso do exemplo seria exibir o arquivo 'documento3.doc' para todos os franqueados, junto com os arquivos que ja estão associados).
Tentei dar INNER JOIN um após o outro, mas não deu certo..
Qual é o sql que devo rodas para fazer essa consulta?
Desde já agradeço a ajuda de todos..
Abraços..
Carregando comentários...