SELECT var1,var2,var3,table_name
FROM table1 LEFT JOIN table_name on var3=table_name.id
Significado Quiero izquierda dinámicamente tabla de unión, dependiendo del valor de table_name
de table1
, ya var3
se toma a partir de ahí.consulta MySQL utilizando como variable nombre de tabla en LEFT JOIN
embargo, los anteriores resultados de la consulta en
tabla nombre_tabla no existe
Mi error de la limitación de MySQL?
No creo que pueda hacer esto. Es probable que necesite pasar el nombre de la tabla a un procedimiento almacenado si desea este tipo de funcionalidad o rediseñar lo que está tratando de hacer. – spig
No es una limitación de MySQL. Más como limitación de SQL si puede llamarlo así, pero diría que es una indicación de que algo anda mal con el diseño de su base de datos. – Mchl
La tabla principal contiene objetos. Cada objeto puede tener atributos. Hay tablas separadas para cada atributo que enumera valores posibles: los valores pueden ser muy largos (varios cientos de caracteres) y hay muchos valores posibles (miles). Así que la tabla principal tiene 2 campos por atributo: attr_table_name, attr_table_id - para ahorrar espacio y permitir la modificación del nombre del atributo. Cuando se ejecuta la consulta, devuelvo el valor real del atributo, no el ID, por eso necesito LEFT JOIN y el nombre dinámico de la tabla. ¿De qué otro modo diseñaría la base de datos? – selytch