P3rukao 0 Denunciar post Postado Novembro 5, 2009 Galera... estou tentando fazer uma listagem de dados organizadas por grupos em mais de uma tabela... e estou com dúvida quanto ao número de comandos SELECT a se fazer... Eu tenho as seguintes tabelas: -> usuarios: id, nome, categoria (guarda o id da categoria), estado (guarda o id do estado), cidade (guarda o id da cidade), etc...; -> categoriaUsuarios: id, nome; -> usuarios_categorias: usuario_id, categoriausuario_id; -> estados: id, uf, nome; -> cidades: id, estado, uf, nome; O que quero fazer é fazer uma listagem de usuarios de uma determinada categoria dentro de um Estado, e dentro deste uma listagem de usuarios dentro de cada Cidade deste Estado, ficando assim: + Usuarios da categoria [b]3[/b] pertencentes a São Paulo (20): ----- Campinas (10); ----- Ribeirão Preto (2); ----- Paraguaçu Paulista (8); + Usuarios da categoria [b]3[/b] pertencentes ao Rio Grande do Norte (10): ----- Natal (3); ----- Mossoró (7); A query que eu montei, a princípio, foi essa: SELECT u.id AS uid, u.categoria AS ucat, u.estado AS ue, u.cidade AS ucid, e.id AS eid, e.nome AS en, c.id AS cid, c.usuarios AS u JOIN estados AS e ON (u.estado = e.id) JOIN cidades AS c ON (c.id = u.cidade) GROUP BY e.id Mas queria saber como fazer para montar o contador de usuarios, e se pra cada estado listado nessa ultima consulta, eu teria de fazer outra consulta pra listar os usuarios de cada cidade desse estado, ou se isso poderia ser feito num unico comando utilizando mais JOINS??? Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Novembro 9, 2009 Se você for exeibir isso em um software qualquer, fica mais fácil para você ter a lógica em uma classe. Para fazer isso no próprio banco ou exibir em uma relatório, vai precisar utilizar uma Stored Procedure para formatar como você quer. Pode até utilizar uma Stored Function para contar os usuários em uma cidade, estado. Fala aí o que você vai fazer. Happy MySQL'ing!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites