別のテーブルへの結合を必要とするクエリを作成する必要がありますが、テーブル名と列名の両方が別のテーブルに格納されています。
以下にリストされている2つのテーブルがあります。
テーブル "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 に必要な 2 つの列が含まれています。
動的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」の近くで使用する正しい構文を確認してください
助言がありますか ?