rockrgo 138 Denunciar post Postado Dezembro 9, 2013 Boa tarde pessoal, estou fazendo um select onde preciso pegar todos os contratos cadastrados, devido ao join com a tabela visitas o contrato só aparece se tiver uma visita cadastrada para aquele contrato. $this->db->select('contratos.*, clientes.descricao as cli_nome, SUM(visitas.horas_trabalhadas) as somaHoras'); $this->db->from('contratos'); $this->db->join('clientes', 'contratos.id_cliente = clientes.id'); $this->db->join('visitas', 'contratos.id = visitas.id_contrato'); $this->db->where('visitas.status', '1'); if($tipo == 0 && $tipo != null && $id != null){ $this->db->where('contratos.id_consultor', $id); } $this->db->group_by('contratos.id'); Existe uma forma de pegar todos os contratos mesmo se não tiver uma visita relacionada? Compartilhar este post Link para o post Compartilhar em outros sites
Fabiano Abreu 22 Denunciar post Postado Dezembro 9, 2013 Olá rockrgo, Tem sim, use o left ou right join. _ _ Fabiano Abreu Papo SQL Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Dezembro 9, 2013 Fabiano testei o left e right join e nenhum dos dois retornaram os registros que não possuem visitas. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Dezembro 10, 2013 Vc tem de tratar as condicoes desra tabela , algo como (Visitas.status is null or visitas.status = 1) Não sei como se faz neste construtor de queries usado todavia. Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Dezembro 10, 2013 Vc tem de tratar as condicoes desra tabela , algo como (Visitas.status is null or visitas.status = 1) Não sei como se faz neste construtor de queries usado todavia. Valeu Motta....vou testar aqui, mas já deu uma clareada nas idéias! Compartilhar este post Link para o post Compartilhar em outros sites
rockrgo 138 Denunciar post Postado Dezembro 10, 2013 Resolvido pessoal, para funcionar tive que utilizar o left join conforme o Fabiano havia dito e tratar o meu where conforme o Motta. Obrigado pela ajuda pessoal! Compartilhar este post Link para o post Compartilhar em outros sites