mysql - SQL:我们如何在表 1 的字段中给定的表上创建表 1 JOIN 表 2?

标签 mysql sql dynamic-sql

假设我有一个 table1,其中有一列名为“table_name”。我使用 table1.table_name 来存储数据库中另一个表的名称。可引用的表都会有一个字段“target_id”。

是否可以在 JOIN 语句中使用 table_name?

例如:

SELECT t1.*, t2.* FROM table1 AS t1
                  JOIN table1.table_name AS t2 ON t1.table1_id = t2.target_id

显而易见的解决方案是使用脚本(在我的例子中是 C++)首先获取表名,然后从中构造一个 SQL 查询。问题是:我们能否绕过脚本并直接在 SQL (MySQL) 中执行此操作?

编辑:What is dynamic SQL?

最佳答案

您唯一的机会是执行 2 个 SQL 语句:

  • 选择你需要的表名
  • 使用此表名动态构建第二个查询以获取您需要的数据 - 您无法直接使用 SQL 执行您想要的操作(听起来您在某种程度上设计了错误的数据库 - 但是在不知道它的目标是什么的情况下很难说。

关于mysql - SQL:我们如何在表 1 的字段中给定的表上创建表 1 JOIN 表 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4164808/

相关文章:

MySQL - 在更新时使用动态 sql

mysql - 表达式引擎登录问题

php - 将每个数组日期与php中的mysql日期进行比较

php - Echo DISTINCT 行以从 MYSQL 中删除重复结果

mysql - 由于 WHERE 而没有限制列表的 SQL 计数函数

sql - 如何通过Object Id和Column Id查询表数据?

mysql - my.cnf 根据配置优化

mysql - SQL - 无法使用多个聚合函数结果过滤表

sql - 动态枢轴sql

sql-server-2005 - 如何在 T-SQL 中执行之前解析动态 SQL?