Somar varios Join no mysql

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.