junaooaks 3 Denunciar post Postado Agosto 3, 2011 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
junaooaks 3 Denunciar post Postado Agosto 3, 2011 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
h4v3st 1 Denunciar post Postado Agosto 5, 2011 Junao, voce ja testou a query direto no banco de dados ? Compartilhar este post Link para o post Compartilhar em outros sites
junaooaks 3 Denunciar post Postado Agosto 5, 2011 direto no banco funciona Compartilhar este post Link para o post Compartilhar em outros sites
h4v3st 1 Denunciar post Postado Agosto 5, 2011 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