kania 0 Denunciar post Postado Maio 24, 2010 Olá pessoal, Montei o seguinte select: SELECT cidades.nome_cidade FROM cadastro_usuarios INNER JOIN estados ON cadastro_usuarios.estado = estados.id_estado INNER JOIN cidades ON cadastro_usuarios.cidade = cidades.id_cidade AND estados.id_estado = cidades.id_estado INNER JOIN sub_categorias_anunciantes ON cadastro_usuarios.id_cadastro = sub_categorias_anunciantes.id_anunciante WHERE estados.id_estado = 18 GROUP BY cidades.nome_cidade Bom ele está funcionando certinho até certo ponto, ele pega cidades cujo o estado seja igual a 18 e que estas cidade estejam também cadastradas na tabela cadastro_usuários. Bom o que eu não consegui fazer é o seguinte: Na hora da busca eu faço o seguinte. 1° - Busco o tipo de serviço em sistema de autosujeste feito por este select: SELECT sub_categorias.SubCategoria, sub_categorias_anunciantes.id_anunciante, cadastro_usuarios.id_cadastro, sub_categorias_anunciantes.id_sub_categoria FROM cadastro_usuarios INNER JOIN sub_categorias_anunciantes ON cadastro_usuarios.id_cadastro = sub_categorias_anunciantes.id_anunciante INNER JOIN sub_categorias ON sub_categorias_anunciantes.id_sub_categoria = sub_categorias.IdSubCategoria where sub_categorias.SubCategoria like '"&q&"%' Group By sub_categorias.SubCategoria LIMIT 0,20 2° - Já com o ID da categoria agora eu listo em uma combo todos o estados com este select: SELECT sub_categorias.SubCategoria, estados.nome_estado, estados.id_estado FROM cadastro_usuarios INNER JOIN sub_categorias_anunciantes ON cadastro_usuarios.id_cadastro = sub_categorias_anunciantes.id_anunciante INNER JOIN estados ON cadastro_usuarios.estado = estados.id_estado INNER JOIN sub_categorias ON sub_categorias_anunciantes.id_sub_categoria = sub_categorias.IdSubCategoria WHERE sub_categorias.IdSubCategoria = '"&IdUf&"'" 3° - Agora preciso saber somente as cidades que sejam igual ao estado escolhido anteriormente porem também só pode aparecer as cidades que já tenham serviços cadastrados para elas, este select só consegui fazer até o ponto que está abaixo: SELECT cidades.nome_cidade FROM cadastro_usuarios INNER JOIN estados ON cadastro_usuarios.estado = estados.id_estado INNER JOIN cidades ON cadastro_usuarios.cidade = cidades.id_cidade AND estados.id_estado = cidades.id_estado INNER JOIN sub_categorias_anunciantes ON cadastro_usuarios.id_cadastro = sub_categorias_anunciantes.id_anunciante WHERE estados.id_estado = 18 GROUP BY cidades.nome_cidade Ele não está trazendo somente as cidades que tenham serviços cadastrados para eles, como fazer isto? Da forma que eu montei ele traz todas as cidades referente ao estado ID 18. Preciso fazer isto para não colocar na combo cidades que não tenham serviços, imagine o usuário ficar selecionando cidades uma a uma para saber qual realmente tem um serviço. Compartilhar este post Link para o post Compartilhar em outros sites
kania 0 Denunciar post Postado Maio 24, 2010 Pessoal, conseguir resolver a questão, se alguém vier a precisar de algo parecido fica ai o modelo do select SELECT cidades.nome_cidade, estados.sgl_estado, sub_categorias.SubCategoria FROM cidades INNER JOIN estados ON cidades.id_estado = estados.id_estado INNER JOIN cadastro_usuarios ON cidades.id_cidade = cadastro_usuarios.cidade AND estados.id_estado = cadastro_usuarios.estado INNER JOIN sub_categorias_anunciantes ON cadastro_usuarios.id_cadastro = sub_categorias_anunciantes.id_anunciante INNER JOIN sub_categorias ON sub_categorias_anunciantes.id_sub_categoria = sub_categorias.IdSubCategoria WHERE sub_categorias_anunciantes.id_sub_categoria = 724 AND cidades.id_estado = 18 GROUP BY cidades.nome_cidade Lembrando que este select junta 5 tabelas diferentes, onde todas tem algum tipo de relacionamento entre elas Compartilhar este post Link para o post Compartilhar em outros sites