我有这样的查询:
SELECT * FROM (SELECT linktable FROM adm_linkedfields WHERE name = 'company') as cbo WHERE group='BEST'
基本上,主查询的表名是通过子查询获取的。
我得到一个错误,#1054 - Unknown column 'group' in 'where clause'
当我调查(删除where子句)时,我发现查询始终只返回子查询结果。
子查询表 adm_linkedfields
具有结构 id |姓名 |可链接
目前正在使用带有 PDO 的 MySQL,但查询应该与主要数据库(即 Oracle、MSSQL、PgSQL 和 MySQL)兼容
更新:
子查询应返回主查询的表名。在这种情况下,它将返回 tbl_company
主查询的表 tbl_company
具有以下结构:
编号 |姓名 |组
提前致谢。
最佳答案
动态 SQL 不是那样工作的,您创建的是一个内联 View ,请继续阅读。更重要的是,您无法创建适用于每个数据库的动态 sql 查询。如果您的链接表数量有限,您可以尝试使用左连接或联合从所有表中进行选择,但如果您没有充分的理由,则不希望这样做。 只需在一个查询中选择表名,然后让另一个查询访问正确的表(通过在 php 中创建查询字符串)。
关于mysql - 获取表名的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17259846/