que he leído sobre el 61 table join limit en MySQL 5, pero no estoy seguro de cómo se aplicaría a los siguientes iniciales:¿El límite en el número máximo de tablas de unión SQL se aplica a toda la consulta, o las subconsultas se cuentan por separado?
SELECT * FROM (
SELECT * FROM tableA JOIN // Lots of other joins here...
UNION
SELECT * FROM tableB JOIN // Lots of other joins here...
UNION
SELECT * FROM tableC JOIN // Lots of other joins here...
// etc...
)
¿Me alcanzado el límite con 61 mesas en total a través de todas las subconsultas, o le ¿será 61 por subconsulta UNIONed?
Esto varía en DBs, p. Ej. PostgreSQL, MSSQL, Oracle?
Sí, no me gusta mucho, pero el problema me obliga (recopilar envíos de estudiantes sin marcar de muchos tipos diferentes y agruparlos por supuesto). Anteriormente mantenía las subconsultas UNION livianas y realizaba cualquier filtrado, p. "es el alumno en una clase que el usuario realmente enseña" en la parte externa, pero el rendimiento es pobre y necesito obtener esas cosas como JOINs directos, lo que significa que deben duplicarse para cada subconsulta de UNIÓN. Parece que MySQL no optimiza muy bien las subconsultas :( –
Sí, el límite es diferente en diferentes bases de datos. Sin embargo, en cualquier base de datos, si estás contra el límite, entonces realmente necesitas reconsiderar tu diseño. No estoy seguro sobre mysql pero en el servidor SQl esas uniones en la unión contarían para el total – HLGEM
@HLGEM. Gracias. Me gustaría rediseñar el esquema, pero no tengo control sobre eso ya que estoy haciendo un complemento para un gran proyecto de código abierto. –