Utilice “mostrar tablas” como una tabla derivada.
Estoy intentando combinar “show tables like
” como una tabla derivada en un join.
Esto funciona:
show tables like 'table_name_pattern_%'
Sin embargo, no puedo entender cómo hacer que esto funcione:
select i.* from table i
left join (
show tables like 'table_name_pattern_%'
) a on i.id=mid(a.`columnname_from_show_tables`, 20)
¿Alguna idea o es “show tables” una declaración especial que no se puede unir?
Estoy en MySQL 5.7.
davy.ai
No es posible unir directamente una instrucción
show tables
ya que no es una tabla o vista. Sin embargo, una solución alternativa es utilizar una subconsulta para obtener la lista de tablas que coinciden con el patrón y luego unirla con su tabla.Aquí hay un ejemplo de consulta:
En esta consulta, primero utilizamos una subconsulta para obtener la lista de tablas que coinciden con el patrón utilizando la vista
information_schema.tables
. Luego seleccionamos las columnas relevantes de la subconsulta y las utilizamos en la condición de unión con nuestra tabla principal.Tenga en cuenta que deberá reemplazar
tu_nombre_de_base_de_datos
ypatron_de_nombre_de_tabla_%
con su nombre real de base de datos y patrón de tabla, respectivamente. Además, deberá ajustar la función de subcadena para extraer la parte relevante del nombre de la tabla en la que necesita unirse.