MYSQL连接一个表,其名称作为字段值存储在另一个表上

Ced*_*ric 10 mysql

我试图在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)

有什么答案吗?!

noo*_*nex 9

您应该构建动态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)


Zen*_*hai 1

我假设您正在尝试获取“[CATEGORISATIONS.nom_table]”来解析为表名。

在这种情况下,您可以尝试使用子查询,该子查询将仅解析为 1 个表名(因此结果集包含 1 行和 1 列)。我不确定 MySQL 是否会接受那里的表的字符串名称,但值得一试。