私は 'foo'列を持つ表t1を持ち、 'foo'列に 'bar'と 'baz'を含むレコードを持っています。私はまた、列 '棒'、 'baz'と 'quux'のテーブルt2を持っています。 T1から2列名を取得し、T2のこれらの列を照会し、ある別のSELECTの列名を選択することは可能ですか?
SELECT (SELECT foo from t1) FROM t2;
:私は次のような何かをしたいです。私はMonetDBでこれを行うにしようとすると、私はエラーメッセージが表示されます:
cardinality violation (2>1)
ので、
- はMonetDBでこれを行うには他のいくつかの方法がありますか?
- これはMySQLで可能ですか?他のDBMS?
例クエリ(またはクエリに続くクエリ以外のディレクティブ)は歓迎されます。
これを実行するには、動的SQLを使用する必要があります(MySQLでは 'prepare'と' execute')。 –
いいえ、これはRDBMSでは一般的に不可能です.SQL仕様には、選択リストで使用されるサブクエリと、外部SQL問合せの一部であるsgではない戻りデータが含まれます。ほとんどのRDBMSは、sqlコマンドを動的に作成できるようにするが、sqlコマンドとして任意の文字列を実行できるようにする機能を提供しています。 – Shadow
@ Shadow:そうです、MonetDB _does_は内部クエリを実行します。私は何とかベクトルを一連の文字列に変換する必要があります。私はそれが不可能かもしれないことを理解していますが、それは "一般的に"不可能ではないからではありません。 – einpoklum