Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
Estou com uma necessidade aqui mas creio que não seja os INNERs que eu deva usar mas sim algum tipo de IF.
Vejam só:
Tabela 1
idContato
nome
idCanal
Tabela 2
idCanal
Eu preciso fazer uma SELECT que traga todos os contatos da Tabela 1, porém se tiver na Tabela 2 algum registro que coincida com o campo idCanal da Tablela 1, só mostrar os contatos cujo idCanal esteja na Tabela 2.
Resumindo: Se a tabela 2 estiver vazia, trago tudo da Tabela 1, se tiver algum registro na 2, cujo idCanal apareça na 1, só mostre esses canais listados na 2.
//SQL de consulta
SELECT * FROM tabela1 WHERE idcontato in (SELECT idcontato WHERE tabela2)
O resultado desta consulta você pode armazenar em uma variável e a verifique se está vazia. Neste exemplo utilizo a variável $resultado, mas você pode usar o nome que bem entender.
if( empty($resultado) ) //Verifica se o $resultado está vazio
{
//executa -> SELECT * FROM tabela1
}
Para resumir, observe: A primeira consulta busca todos os contatos que existem na tabela2. Caso a consulta não retornar nada, será feita então uma nova consulta de todos os contatos da tabela1.
Uma solucao
select *
from tabela1
union all
select *
from tabela1