Bom dia, alguem pode me dar uma luz
tenho essa query abaixo:
SELECT bairro.ba_bairro AS ba_bairro, count(cadastro.ca_bairro) AS count_ca_outro_bairro, sum(cadastro.ca_bairro) AS sum_ca_bairro FROM (cadastro LEFT JOIN bairro ON bairro.ba_codigo=cadastro.ca_bairro) GROUP BY bairro.ba_bairro
que faço uma mysql_fetch_assoc() mostrando o nome do bairro x e o total de registro dele na tabela cadastro
sendo que o mesmo existe mas 10 campos chamados:
ca_outro_bairro_1,ca_outro_bairro_2,ca_outro_bairro_3,ca_outro_bairro_4,ca_outro_bairro_5,ca_outro_bairro_6,ca_outro_bairro_7,ca_outro_bairro_8,ca_outro_bairro_9,ca_outro_bairro_10
eu queria somar todos
pois um cadastro pode morar no bairro x mas tem conhecido no bairro y
ai eu quero ter um relatório aonde mostra o total por bairro que some o total de cadastro nessas colunas relacionadas acima
exemplo o bairro : bairro “centro” existe 20 cadastro na coluna ca_bairro e na coluna ca_outro_bairro_1 tem 10 registro entao no bairro centro vai mostra 30 registro e assim com as outras colunas
Bom, se vc tem colunas ao invés de linhas já complica um pouco, nesse caso pesquise sobre pivot table (transformar colunas em linhas) para ter uma noção do que fazer para só depois realizar a soma…
Tenho linha no php
No caso coluna e os campos no mysql
O que o @rodevops se refere é que, em termos de modelagem, seus dados estão incorretos.
Toda vez que você pode ter colunas que podem ou não ser preenchidas por um número variável de elementos, como é o caso, você deve criar uma outra tabela, relacionada à primeira.
Se você tivesse uma tabela “conhecidos”, seria fácil, uma FK referenciando a tabela bairro ou a tabela do cadastrado. Assim, com um select simples você teria todas as informações retornadas de maneira eficaz e correta.
1 curtida
Entendi amigo
Mas nao teria como fazer msm sem precisar criar essa tabela conhecido e fazer fk?
Vou tenta seguir a sua orientação
Como te falei, usando pivot table, mas sua query além de ficar mais complexa, pode com o tempo cair a performance… melhor remediar agora do que o veneno tomar conta depois… assim é até melhor ajustar tudo logo e evitar problemas ou complexidades desnecessárias no futuro…
Você sabe que esse é o tipo de coisa que é parecido com a mentira, né? Tem perna curta e para você continuar com a história, vai precisar ficar inventando mais e mais mentiras.
Como o @rodevops disse, pivot table e assumir os riscos que isso vai te trazer.