Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

junaooaks

o famoso INNER JOIN

Recommended Posts

pessoal estou com um problema de Qi baixo

 

como faço para fazer uma consulta entre tabelas onde o id referente as tabelas esta em somente uma tabela

 

SELECT * FROM os, cliente, usuarios, equipamento, marca, atendimento

 

na tabela OS tem id referente as tabelas tipo assim

 

os: codcliente, codusuario, codequipamento, codmarca, codatendimento

 

cliente: codcliente

usuario: codusuario

equipamento: codequipamento

marca:commarca

atendimento:codatendimento

 

 

como faço este relacionamento

 

comecei aqui mas nao consigo prossegui


$fi = array('nos'=>"%".$nos."%", 'tec'=>"%".$tecnico."%", 'dat'=>$dat, 'da'=>$da, 'sit'=>"%".$status."%", 'cli'=>"%".$cliente."%");

$sql = $pdo->prepare("SELECT * FROM os INNER JOIN cliente ON os.codCliente = cliente.idCliente
                     WHERE cliente.pessoaJuridica LIKE :cli  
	      AND os.idOs LIKE :nos
	    ");			

$sql->execute($fi);

 

a minha duvida é : a tabela OS é a principal, como fazer para consulta em mais de uma tabela. bom ao meu raciocínio baixo e mais ou menos assim

 

$fi = array('nos'=>"%".$nos."%", 'tec'=>"%".$tecnico."%", 'dat'=>$dat, 'da'=>$da, 'sit'=>"%".$status."%", 'cli'=>"%".$cliente."%");

$sql = $pdo->prepare("SELECT * FROM os INNER JOIN (((((os INNER JOIN cliente ON os.codCliente = cliente.idCliente) 
os INNER JOIN usuario ON os.codUsuario = usuario.idUsuaio) 
os INNER JOIN equipamento ON os.codEquipamento = equipamento.idEquipamento) 
os INNER JOIN marca ON os.codMarca = marca.idMarca) 
os INNER JOIN atendimento ON os.codAtendimento = atendimento.idAtendimento)

WHERE cliente.pessoaJuridica LIKE :cli  
AND os.idOs LIKE :nos
	    ");			

$sql->execute($fi);

 

galera me ajuda ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera me parece que o problema esta no BETWEEN nao sei se e por que estou usando PDO

 

$fi = array('nos'=>"%".$nos."%", 'tec'=>"%".$tecnico."%", 'dat'=>$dat, 'da'=>$da, 'sit'=>"%".$status."%", 'cli'=>"%".$cliente."%");
$sql = $pdo->prepare("SELECT *
from os a
inner join cliente b on a.codCliente = b.idCliente
inner join usuarios c on a.codUsuario = c.idUsuario
inner join equipamento d on a.codEquipamento = d.idEquipamento
inner join marca e on a.codMarca = e.idMarca
inner join atendimento f on a.codAtendimento = f.idAtendimento
WHERE b.pessoaJuridica LIKE :cli  
AND a.idOs LIKE :nos
AND a.codTecnico LIKE :tec
AND a.data BETWEEN {:dat} AND {:da}
AND a.situacao LIKE :sit
");
$sql->execute($fi);

 

galera me da uma força ai, nao esta aparecendo erro so que tambem nao mostra nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

direto no banco funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então será necessário revisar as variáveis que você passa no select (de acordo com a linguagem de programação que você está utilizando)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.