我需要编写一个查询,该查询需要连接到另一个表,但表名和列名都存储在另一个表中。
我有两个表,如下所示:
表“description_tab”:(id、type_id、reference_id、name、description)
表“description_tab_type”:(id、type_name、reference_table、reference_column_name、reference_column_id)
其中 description_tab_type 包含其他表的名称和我需要用于 JOIN 的两列。
我尝试了动态 SQL:
SELECT reference_table, reference_column_name, reference_column_id
INTO @reference_table, @reference_column_name, @reference_column_id
FROM description_tab_type WHERE type_name = 'Origin';
PREPARE statement FROM "select dt.description from description_tab dt join @reference_table on @reference_table.@reference_column_id = dt.reference_id where @reference_table.@reference_column_name = 'test'";
EXECUTE statement;
DEALLOCATE PREPARE statement;
但它没有用。当我运行它时,我得到以下信息:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '@reference_table on @reference_table.@reference_column_id = dt.reference_id where @refere' 附近使用正确的语法
有什么建议么 ?