-2
SELECT
pessoafisica.PessoaFisica_Nome,
filiados.`Filiado_MatriculaEmpresa`,
filiados.`Filiado_RetornoSiape` AS observacoes,
Filiado_MatriculaEmpresaDigito,
lotacao.Lotacao_Descricao,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 10
LIMIT 1) AS Telefone_Residencial,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 11
LIMIT 1) AS Telefone_Celular,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 9
LIMIT 1) AS Telefone_Comercial,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 3
LIMIT 1) AS Fax,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 4
LIMIT 1) AS Email_Principal,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 5
LIMIT 1) AS Email_Secundario,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 6
LIMIT 1) AS Email_Terciario,
(SELECT
contato.Contato_Valor
FROM
filiadoshascontato,
contato
WHERE filiadoshascontato.FiliadosHasContato_Filiados_Id = filiados.Filiado_Id
AND filiadoshascontato.FiliadosHasContato_Contato_Id = contato.Contato_Id
AND Contato_TipoContato_Id = 8
LIMIT 1) AS Home_Page,
(SELECT
filiadosiape.`FiliadoSiape_DataInicioPensao`
FROM
filiadosiape
WHERE filiadosiape.`Filiados_Filiado_Id` = filiados.Filiado_Id
LIMIT 1) AS Data_Pensao,
(SELECT
funcaoempresa.`FuncaoEmpresa_Valor`
FROM
funcaoempresa
WHERE funcaoempresa.`FuncaoEmpresa_Id` = `lotacaofiliado`.`FuncaoEmpresa_Id`
AND lotacaofiliado.`Filiados_Filiado_Id`
LIMIT 1) AS Funcao,
(SELECT
profissao.`Profissao_Valor`
FROM
profissao
WHERE profissao.`Profissao_Id` = filiados.`Filiado_Id_Profissao_Id`
LIMIT 1) AS Profissao,
(SELECT
lotacao.`Lotacao_Descricao`
FROM
lotacao
WHERE lotacao.`Lotacao_Id` = lotacaofiliado.`Lotacao_Id`
AND lotacaofiliado.`Filiados_Filiado_Id`
LIMIT 1) AS Lotacao,
(SELECT
cargoempresa.`CargoEmpresa_Valor`
FROM
cargoempresa
WHERE cargoempresa.`CargoEmpresa_Id` = lotacaofiliado.`CargoEmpresa_Id`
AND lotacaofiliado.`Filiados_Filiado_Id`
LIMIT 1) AS Cargo,
(SELECT
situacaoenviosiape.`SituacaoEnvioSiape_Valor`
FROM
situacaoenviosiape
WHERE `situacaoenviosiape`.`SituacaoEnvioSiape_Id` = `filiadosiape`.`SituacaoEnvioSiape_SituacaoEnvioSiape_Id`
AND filiadosiape.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Situacao_Envio,
(SELECT
sexo.`Sexo_Valor`
FROM
pessoafisica
WHERE sexo.`Sexo_Id` = pessoafisica.`PessoaFisica_Sexo_Id`
LIMIT 1) AS Sexo,
(SELECT
endereco.`Endereco_Rua`
FROM
endereco
WHERE endereco.`Endereco_Id` = pessoafisica.PessoaFisica_Endereco_Id
LIMIT 1) AS Endereco,
(SELECT
predio.`Predio_Descricao`
FROM
filiadoshasempresa
WHERE predio.`Predio_Empresa_Id` = fhe.`Filiados_Filiado_Id`
LIMIT 1) AS Predio,
(SELECT
empresa.`Empresa_Codigo`
FROM
empresa
WHERE empresa.`Empresa_Id` = fhe.`Empresa_Empresa_Id`
LIMIT 1) AS Empresa_Codigo,
(SELECT
empresa.`Empresa_Nome`
FROM
empresa
WHERE empresa.`Empresa_Id` = fhe.`Empresa_Empresa_Id`
LIMIT 1) AS Empresa_Nome,
(SELECT
IF (
filiados.Filiado_Filiado = 0,
'Não',
'Sim'
)
LIMIT 1) AS Associado,
(SELECT
IF (
dadosfinanceirosfiliado.`DadosFinanceirosFiliado_Valor` IS NULL,
0,
1
)
FROM
dadosfinanceirosfiliado
WHERE CONCAT(
dadosfinanceirosfiliado.`DadosFinanceirosFiliado_CompetenciaAno`,
dadosfinanceirosfiliado.`DadosFinanceirosFiliado_CompetenciaMes`
) = CONCAT(YEAR(NOW()), MONTH(NOW()) - 1)
AND dadosfinanceirosfiliado.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Desconto,
(SELECT
estadocivil.`EstadoCivil_Valor`
FROM
pessoafisica
WHERE estadocivil.`EstadoCivil_Id` = pessoafisica.`PessoaFisica_Id`
LIMIT 1) AS Est_Civil,
(SELECT
fatorrh.`FatorRh_Valor`
FROM
pessoafisica
WHERE fatorrh.`FatorRh_Id` = pessoafisica.`PessoaFisica_FatorRh_Id`
LIMIT 1) AS Fator_Rh,
(SELECT
pessoafisica.`PessoaFisica_DataNascimento`
FROM
pessoafisica
WHERE pessoafisica.`PessoaFisica_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Data_Nascimento,
(SELECT
grauinstrucao.`GrauInstrucao_Valor`
FROM
pessoafisica
WHERE grauinstrucao.`GrauInstrucao_Id` = pessoafisica.`PessoaFisica_GrauInstrucao_Id`
LIMIT 1) AS Grau_Istrucao,
(SELECT
pessoafisica.`PessoaFisica_NomePai`
FROM
pessoafisica
WHERE pessoafisica.`PessoaFisica_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Pai,
(SELECT
pessoafisica.`PessoaFisica_NomeMae`
FROM
pessoafisica
WHERE pessoafisica.`PessoaFisica_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Mae,
(SELECT
raca.`Raca_Valor`
FROM
pessoafisica
WHERE raca.`Raca_Id` = pessoafisica.`PessoaFisica_Raca_Id`
LIMIT 1) AS Raca,
(SELECT
situacaoempresa.`SituacaoEmpresa_Valor`
FROM
situacaoempresa
WHERE situacaoempresa.`SituacaoEmpresa_Id` = dadosempresa.`SituacaoEmpresa_SituacaoEmpresa_Id`
LIMIT 1) AS Situacao_Empresa,
(SELECT
vinculoempregaticio.`VinculoEmpregaticio_Valor`
FROM
vinculoempregaticio
WHERE vinculoempregaticio.`VinculoEmpregaticio_Id` = dadosempresa.`VinculoEmpregaticio_VinculoEmpregaticio_Id`
LIMIT 1) Vinculo,
(SELECT
dadossindicato.`DadosSindicato_DataFiliacao`
FROM
dadossindicato
WHERE dadossindicato.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Data_Filiacao,
(SELECT
filiacaodesfiliacao.`FiliacaoDesfiliacao_Data`
FROM
filiacaodesfiliacao
WHERE filiacaodesfiliacao.`Filiados_Filiado_Id` = filiados.`Filiado_Id` LIMIT 1) AS Data_Desfiliacao,
(SELECT
urna.`Urna_Urna`
FROM
urna
WHERE urna.`Filiados_Filiado_Id` = filiados.`Filiado_Id` LIMIT 1) AS Urna,
(SELECT
urna.`Urna_UltimaVotacao`
FROM
urna
WHERE urna.`Filiados_Filiado_Id` = filiados.`Filiado_Id` LIMIT 1) AS Urna_Votacao,
(SELECT
dadossindicatocarteirinha.`Carteirinha_Emissao`
FROM
dadossindicatocarteirinha
WHERE dadossindicatocarteirinha.`Filiados_Filiado_Id` = filiados.`Filiado_Id` LIMIT 1) AS Carteira_Emissao,
(SELECT
dadossindicatocarteirinha.`Carteirinha_Validade`
FROM
dadossindicatocarteirinha
WHERE dadossindicatocarteirinha.`Filiados_Filiado_Id` = filiados.`Filiado_Id` LIMIT 1) AS Carteira_Validade,
(SELECT
cipa.`Cipa_Membro`
FROM
cipa
WHERE cipa.`Cipa_Id` = cipahasfiliados.`Cipa_Cipa_Id`
AND cipahasfiliados.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Membro_Cipa,
(SELECT
cipa.`Cipa_Eleito`
FROM
cipa
WHERE cipa.`Cipa_Id` = cipahasfiliados.`Cipa_Cipa_Id`
AND cipahasfiliados.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Eleito,
(SELECT
cipa.`Cipa_Mandato`
FROM
cipa
WHERE cipa.`Cipa_Id` = cipahasfiliados.`Cipa_Cipa_Id`
AND cipahasfiliados.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Mandato,
(SELECT
cipa.`Cipa_FimMandato`
FROM
cipa
WHERE cipa.`Cipa_Id` = cipahasfiliados.`Cipa_Cipa_Id`
AND cipahasfiliados.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LIMIT 1) AS Fim_Mandato,
(SELECT
documento.`Documento_Valor`
FROM
documento
INNER JOIN filiadoshasdocumento fhd
ON fhd.`Documento_Documento_Id` = documento.`Documento_Id`
WHERE documento.`Documento_TipoDocumento_Id` = 7
AND filiados.Filiado_Id = fhd.`Filiados_Filiado_Id`
LIMIT 1) AS Identidade,
(SELECT
documento.`Documento_Valor`
FROM
documento
INNER JOIN filiadoshasdocumento fhd
ON fhd.`Documento_Documento_Id` = documento.`Documento_Id`
WHERE documento.`Documento_TipoDocumento_Id` = 6
AND filiados.Filiado_Id = fhd.`Filiados_Filiado_Id`
LIMIT 1) AS CPF,
(SELECT
documento.`Documento_Valor`
FROM
documento
INNER JOIN filiadoshasdocumento fhd
ON fhd.`Documento_Documento_Id` = documento.`Documento_Id`
WHERE documento.`Documento_TipoDocumento_Id` = 8
AND filiados.Filiado_Id = fhd.`Filiados_Filiado_Id`
LIMIT 1) AS Ctps,
(SELECT
documento.`Documento_Valor`
FROM
documento
INNER JOIN filiadoshasdocumento fhd
ON fhd.`Documento_Documento_Id` = documento.`Documento_Id`
WHERE documento.`Documento_TipoDocumento_Id` = 9
AND filiados.Filiado_Id = fhd.`Filiados_Filiado_Id`
LIMIT 1) AS PIS,
(SELECT
documento.`Documento_Valor`
FROM
documento
INNER JOIN filiadoshasdocumento fhd
ON fhd.`Documento_Documento_Id` = documento.`Documento_Id`
WHERE documento.`Documento_TipoDocumento_Id` = 13
AND filiados.Filiado_Id = fhd.`Filiados_Filiado_Id`
LIMIT 1) AS FGTS,
(SELECT
documento.`Documento_Valor`
FROM
documento
INNER JOIN filiadoshasdocumento fhd
ON fhd.`Documento_Documento_Id` = documento.`Documento_Id`
WHERE documento.`Documento_TipoDocumento_Id` = 13
AND filiados.Filiado_Id = fhd.`Filiados_Filiado_Id`
LIMIT 1) AS Data_FGTS
FROM
filiados
INNER JOIN pessoafisica pessoafisica
ON filiados.Filiado_PessoaFisica_Id = pessoafisica.PessoaFisica_Id
INNER JOIN filiadoshasempresa fhe
ON filiados.Filiado_Id = fhe.Filiados_Filiado_Id
INNER JOIN empresa
ON fhe.Empresa_Empresa_Id = empresa.Empresa_Id
LEFT JOIN endereco
ON endereco.Endereco_Id = pessoafisica.PessoaFisica_Endereco_Id
LEFT JOIN cidadeestado
ON endereco.Endereco_CidadeEstado_Id = cidadeestado.CidadeEstado_Id
LEFT JOIN lotacaofiliado
ON lotacaofiliado.Filiados_Filiado_Id = filiados.Filiado_Id
LEFT JOIN predio p
ON p.Predio_Id = lotacaofiliado.Predio_Id
LEFT JOIN endereco AS enderedoPredio
ON enderedoPredio.Endereco_Id = p.Predio_Endereco_Id
LEFT JOIN dadosempresa de
ON de.Filiados_Filiado_Id = filiados.Filiado_Id
LEFT JOIN filiadosiape
ON filiadosiape.`Filiados_Filiado_Id` = filiados.Filiado_Id
LEFT JOIN funcaoempresa
ON lotacaofiliado.`FuncaoEmpresa_Id` = funcaoempresa.`FuncaoEmpresa_Id`
LEFT JOIN cargoempresa
ON lotacaofiliado.`CargoEmpresa_Id` = cargoempresa.`CargoEmpresa_Id`
LEFT JOIN situacaoenviosiape
ON filiadosiape.`FiliadoSiape_Id` = situacaoenviosiape.`SituacaoEnvioSiape_Id`
LEFT JOIN lotacao
ON lotacaofiliado.`Lotacao_Id` = lotacao.`Lotacao_Id`
LEFT JOIN sexo
ON pessoafisica.`PessoaFisica_Sexo_Id` = sexo.`Sexo_Id`
LEFT JOIN predio
ON predio.`Predio_Empresa_Id` = filiados.Filiado_Id
LEFT JOIN estadocivil
ON estadocivil.`EstadoCivil_Id` = pessoafisica.`PessoaFisica_EstadoCivil_Id`
LEFT JOIN fatorrh
ON fatorrh.`FatorRh_Id` = pessoafisica.`PessoaFisica_FatorRh_Id`
LEFT JOIN grauinstrucao
ON grauinstrucao.`GrauInstrucao_Id` = pessoafisica.`PessoaFisica_GrauInstrucao_Id`
LEFT JOIN raca
ON raca.`Raca_Id` = pessoafisica.`PessoaFisica_Raca_Id`
LEFT JOIN dadosempresa
ON dadosempresa.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LEFT JOIN vinculoempregaticio
ON vinculoempregaticio.`VinculoEmpregaticio_Id` = dadosempresa.`VinculoEmpregaticio_VinculoEmpregaticio_Id`
LEFT JOIN dadossindicato
ON dadossindicato.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LEFT JOIN filiacaodesfiliacao
ON filiacaodesfiliacao.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LEFT JOIN urna
ON urna.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LEFT JOIN dadossindicatocarteirinha
ON dadossindicatocarteirinha.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
LEFT JOIN cipahasfiliados
ON cipahasfiliados.`Filiados_Filiado_Id` = filiados.`Filiado_Id`
maybe for your case it is interesting to work with INDEX, but I say MAYBE, check this publication, see why and why, https://answall.com/questions/73654/para-que-serve-o-%C3%Adndice-index-no-mysql
– ElvisP
I don’t think INDEX will solve the problem, because not all WHERE can use INDEX, as in
CONCAT(dadosfinanceirosfiliado....) = CONCAT(YEAR(NOW()), MONTH(NOW()) - 1)
. First, see in EXPLAIN/PROFILE what is slow, in my kick will be the stage of "Preparing". If it is "Preparing" the reason would be the amount of subquery that exists. Not to mention that there are Selects of things that are already inINNER JOIN
. I would be surprised if this query was fast, because for me it has everything to be slow.– Inkeliz
What would you advise to do ???
– Vision Development