0

私はRDBMSの初心者です。5つのテーブルの1つから行を取得したいのですが、テーブルの名前は別のテーブルのフィールドの1つの値です。そのため、1 つのクエリから 1 つの変数に値を格納し、その値クエリを、名前が変数に格納されているテーブルで再度使用しようとしています。MySQLでクエリを書いています。構文でエラーが発生します。

これは私が書いているクエリステートメントです。

DECLARE @vcTemp VARCHAR(40)
SELECT unit_test_result.*, @vcTemp = unit_test.name
  FROM unit_test_result, unit_test
  WHERE unit_test_result.test_run_id = 3 && unit_test.id = unit_test_result.unit_test_id
SELECT @vcTemp.* FROM @vcTemp

しかし、次のエラーが発生します。

SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、1 行目の 'DECLARE @vcTemp VARCHAR(40) SELECT unit_test_result.*, @vcTemp = unit_test.name ' 付近で使用する正しい構文を確認してください。

誰でも構文を手伝ってもらえますか? ありがとう。

4

1 に答える 1

0

動的テーブル名は SQL ではサポートされていません。これらのクエリが他の言語 (つまり、PHP スクリプト) のプログラムによって実行されている場合、最も簡単な方法は 2 つのクエリを実行することです。1 つはテーブル名を取得するためのもので、もう 1 つは実際のデータを取得するためのものです。

ただし、MySQL 内にとどまることに制限されている場合は、ストアド プロシージャを使用して必要なことを行うことができます。例を次に示します: http://forums.mysql.com/read.php?98,126506,126598#msg-126598

于 2013-05-16T18:25:16.850 に答える