我试图在MYSQL中构建一个动态查询来连接一个表,它的名称作为字段值存储在另一个表上,如下所示:
SELECT * FROM CATEGORIES
INNER JOIN CATEGORISATIONS ON CATEGORISATIONS.id = CATEGORIES.fk_categorisation
INNER JOIN [CATEGORISATIONS.nom_table] LV_REGIONS ON LV_REGIONS.id = CATEGORIES.valeur
Run Code Online (Sandbox Code Playgroud)
有什么答案吗?!
您应该构建动态SQL http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-prepared-statements.html
喜欢:
select CATEGORISATIONS.nom_table into @tmp FROM ...;
PREPARE stmt1 FROM "SELECT * FROM ... INNER JOIN @tmp ...";
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
Run Code Online (Sandbox Code Playgroud)
我假设您正在尝试获取“[CATEGORISATIONS.nom_table]”来解析为表名。
在这种情况下,您可以尝试使用子查询,该子查询将仅解析为 1 个表名(因此结果集包含 1 行和 1 列)。我不确定 MySQL 是否会接受那里的表的字符串名称,但值得一试。
归档时间: |
|
查看次数: |
9897 次 |
最近记录: |