Optimizar una consulta
Publicado por Lina (5 intervenciones) el 20/04/2017 17:37:31
Hola, gente, necesito ayuda para optimizar una consulta, tarda + de 30seg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT
LPAD(a.id,6,0) as id2,a.id,a.cif,CONCAT('link:clientes(',-a.id,'):',a.nombre) nombre,
a.id action_id, CONCAT(LPAD(a.id,6,0),' - ',a.nombre) action_title,a.nombre nombre2,
x.nombre_pais pais,x.nombre_provincia provincia,x.nombre_poblacion poblacion,x.nombre_codpostal codpostal,x.direccion direccion,
(SELECT y1.valor FROM tbl_comunicaciones y1 WHERE y1.id=(SELECT id FROM tbl_comunicaciones WHERE id_direccion=x.id AND id_tipocom=(SELECT id FROM tbl_tiposcom WHERE codigo='phone')LIMIT 1)) tel_fijo,
(SELECT y2.valor FROM tbl_comunicaciones y2 WHERE y2.id=(SELECT id FROM tbl_comunicaciones WHERE id_direccion=x.id AND id_tipocom=(SELECT id FROM tbl_tiposcom WHERE codigo='movil')LIMIT 1)) tel_movil,
(SELECT y5.valor FROM tbl_comunicaciones y5 WHERE y5.id=(SELECT id FROM tbl_comunicaciones WHERE id_direccion=x.id AND id_tipocom=(SELECT id FROM tbl_tiposcom WHERE codigo='email')LIMIT 1)) email,
c.nombre groupclient,
CASE (1=1) WHEN 1 THEN 'true' ELSE 'false' END action_view,
CASE (1=1) WHEN 1 THEN 'true' ELSE 'false' END action_edit,
CASE (1=1) OR (1=1) WHEN 1 THEN 'true' ELSE 'false' END action_vcard,
CASE (1=1) OR (1=1) WHEN 1 THEN 'true' ELSE 'false' END action_qrcode,
CASE (1=1) WHEN 1 THEN 'true' ELSE 'false' END action_pdf2filter,
CASE (1=1) WHEN 1 THEN 'true' ELSE 'false' END action_view2filter,
CASE (1=1) WHEN 1 THEN 'true' ELSE 'false' END action_delete
FROM tbl_clientes a
LEFT JOIN tbl_direcciones x ON x.id=(SELECT id FROM tbl_direcciones WHERE id_aplicacion='1' AND id_registro=a.id ORDER BY seleccion DESC, id ASC LIMIT 1)
LEFT JOIN tbl_gruposclientes c ON a.id_grupoc = c.id
WHERE (1) AND (id_campanya='' OR ''='') AND (id_importacion='' OR ''='') AND (1=1)
Valora esta pregunta


0