2011-05-22 69 views
0

我的看法是:帮助创建视图

CREATE VIEW `vista_global` AS SELECT TC.nombreCentro, TP.Profesores, TA.Alumnos 
FROM tbl_centros TC 
LEFT JOIN (

SELECT centro, COUNT(*) Profesores 
FROM tbl_profesores 
GROUP BY centro 
)TP ON TC.idCentro = TP.centro 
LEFT JOIN (

SELECT centro, COUNT(*) Alumnos 
FROM tbl_alumnos 
GROUP BY centro 
)TA ON TC.idCentro = TA.centro 

但这不是运行良好。你能帮我吗?

+0

你对Profesores.centro和Alumnos.centro指标?您对缓慢的视图执行哪些查询? – 2011-05-22 15:19:55

+0

您可以粘贴查询的示例您可以针对每个查询的EXPLAIN的视图和输出运行吗? – matt 2011-05-22 15:32:41

回答

0

您不必使用子查询:

CREATE VIEW `vista_global` AS 
SELECT TC.nombreCentro, 
     COUNT(TP.centro) Profesores, 
     COUNT(TA.centro) Alumnos 
FROM tbl_centros TC 
LEFT JOIN tbl_profesores TP ON TC.idCentro = TP.centro 
LEFT JOIN tbl_alumnos TQ ON TC.idCentro = TA.centro 
GROUP BY TC.nombreCentro