私のdbmの知識はまだかなり限られているので、この問題にどのようにアプローチ/解決するかはわかりません。私はINSERT INTO
の2つのテーブルの1つ、たとえばtable1とtable2にしたいが、SELECT
サブクエリの後までどのテーブルがわからない。このような何か:MySQLが単一のステートメントで(条件付き選択のテーブルに)挿入する
INSERT INTO (SELECT tblname) SELECT *, IF(somecondition, 'table1', 'table2') as tblname FROM `anothertable` WHERE id = 'someid'
私はテストとしてこれを試してみました:
INSERT INTO (SELECT tblname) SELECT *, 'table1' as tblname FROM `anothertable` WHERE id = 'someid'
しかし、それは動作しませんでした。
は、私が(!そう便利です)、私はSELECT
文でサブクエリを使用することができます知っている、と私は技術的に私がNOT EXISTS
2内の文で欲しいものを達成できることを、と私は私は2つのテーブルにINSERT
、そして私がいることを知ることができない知っています@ user変数を使用することは、ステートメント(see docs)内では信頼できません。だから、私が欲しいものを達成するための方法はありますか??
私は、単一のstmtの外では、ストアドプロシージャの呼び出しではないとは思いません。条件付きの結合はありますが、条件付きの表はありません – Drew
次のようなPrepared Stmtにいつもつなげることができることを忘れないでください。http://stackoverflow.com/a/38295132 – Drew