因为它太复杂了,解决没有真正的数据这个问题,我会尝试添加一些:
| tables 1 | table 2 | ... | table n
---------------------------------------------------------------------------------------
columns_name: | name | B | C | D | name | B | C | D | ... | name | B | C | D
---------------------------------------------------------------------------------------
column_content:| John | ... | Ben | ... | ... | John| ...
我们的目标是在N表其中name =“约翰”提取的行。
当我们已经拥有了一个名为[table_names]与存储在列[column_table_name] n个表名称表。
现在,我们想要做这样的事情:
SELECT [name]
FROM (SELECT [table_name]
FROM INFORMATION_SCHEMA.TABLES)
WHERE [name] = 'Jonh'
表名称是动态的,因此未知的,直到我们运行INFORMATION_SCHEMA.TABLES查询。
这个最终的查询是给我的错误。有关如何在子查询中使用多个存储表名的任何线索?
您需要将您的别名子查询,以引用它。加名应该是TABLE_NAME
SELECT [table_name]
FROM (SELECT [table_name]
FROM INFORMATION_SCHEMA.TABLES) AS X
WHERE [table_name] = 'Jonh'