mysql - 获取表名的子查询

标签 mysql sql sql-server oracle postgresql

我有这样的查询:

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/

相关文章:

MYSQL触发器问题-非常简单

mysql - 在 MySQL 中选择数据类型

sql - 在 SQL Server 中查找表中的最大生命周期时出现错误

MySQL 错误 #1064

mysql - Camunda 不使用 MySql 作为数据库

php - 奇数类问题

php - SQL 查询在 MySQL 中返回完整结果,在 PHP 中返回部分结果

c# - ASP.NET Identity 如何与 Model First 方法一起使用?

sql-server - CTE 与额外的日期查找返回 NULL

sql - 字符串日期格式转换为日期