I have SELECT
with several INNER JOIN
and some functions like replace
, if
..
This SELECT
gets all the info I need, but it takes a long time.
Is there any way to optimize this SELECT
?
SELECT
as_assinaturas.id,
as
_clientes.id,
as_clientes.nome,
as_clientes.email,
CONCAT(as_enderecos.endereco, as_enderecos.complemento),
as_enderecos.bairro,
as_enderecos.cidade,
as_estados.sigla,
as_enderecos.cep, "Brasil" AS "País",
as_clientes.telefone,
as_assinaturas.ed_inicial,
(as_campanhas.edicoes + as_assinaturas.ed_inicial + as_assinaturas.ed_ajuste_imp) - 1,
as_produtos.titulo,
as_campanhas.edicoes,
as_tipo_assinaturas.nome,
REPLACE(REPLACE(REPLACE(REPLACE(as_assinaturas.status, 'I', 'Inativo'), 'A', 'Ativo'), 'C', 'Cancelado'), 'B', 'Bloqueado') AS "STATUS",
as_assinaturas.status,
as_assinaturas.created,
as_pagamentos.valor,
as_pagamentos.data_pagamento,
as_ordens.tipo_de_pagamento,
IF(as_campanhas.nome LIKE('%Migra%'),'content','digisa') AS "OBSERVACAO",
as_ordens.contrato,
as_assinaturas.vendedor,
as_campanhas.distribuicao,
as_assinaturas.id AS "ID LEGADO",
as_representantes.nome
FROM as_clientes
INNER JOIN as_assinaturas ON as_clientes.id = as_assinaturas.cliente_id
INNER JOIN as_enderecos ON as_enderecos.cliente_id = as_clientes.id
INNER JOIN as_estados ON as_enderecos.estado_id = as_estados.id
INNER JOIN as_campanhas ON as_assinaturas.campanha_id = as_campanhas.id
INNER JOIN as_produtos ON as_produtos.id = as_campanhas.produto_id
INNER JOIN as_pagamentos ON as_assinaturas.id = as_pagamentos.id
INNER JOIN as_ordens ON as_assinaturas.id = as_ordens.assinatura_id
INNER JOIN as_tipo_assinaturas ON as_tipo_assinaturas.id = as_assinaturas.tipo_assinatura_id
INNER JOIN as_representantes ON as_representantes.id = as_assinaturas.representante_id
WHERE as_assinaturas.status = "A"
LIMIT 3