使用 "show tables" 作为派生的 table
Use "show tables" as a derived table
我正在尝试将“show tables like
”作为派生的 table 合并到联接中。
这个有效:
show tables like 'table_name_pattern_%'
但是我不知道如何使它工作
select i.* from table i
left join (
show tables like 'table_name_pattern_%'
) a on i.id=mid(a.`columnname_from_show_tables`, 20)
有什么想法,或者显示table是一个无法加入的特殊声明?
我在 MySQL 5.7
你可以使用这个:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName'
然后:
select i.* from table i
left join (
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName'
AND TABLE_NAME like 'table_name_pattern_%'
) a on i.id=mid(a.`TABLE_NAME`, 20)
我正在尝试将“show tables like
”作为派生的 table 合并到联接中。
这个有效:
show tables like 'table_name_pattern_%'
但是我不知道如何使它工作
select i.* from table i
left join (
show tables like 'table_name_pattern_%'
) a on i.id=mid(a.`columnname_from_show_tables`, 20)
有什么想法,或者显示table是一个无法加入的特殊声明?
我在 MySQL 5.7
你可以使用这个:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName'
然后:
select i.* from table i
left join (
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName'
AND TABLE_NAME like 'table_name_pattern_%'
) a on i.id=mid(a.`TABLE_NAME`, 20)