これは理解しにくいかもしれないので、私はそれをよりよく記述する必要があるかどうかを教えてください。私は次の構文で3つのテーブルにtableA、TableBのを持っている、と言うTABLEC:mysqlテーブルの挿入を挿入する
CREATE TABLE tableA (
data_point_1 VARCHAR(30),
data_point_2 VARCHAR(30),
data_point_3 VARCHAR(30)
);
CREATE TABLE tableB (
bid INTEGER AUTO_INCREMENT,
cid INTEGER AUTO_INCREMENT,
data_point_1 VARCHAR(30),
);
CREATE TABLE tableC (
cid INTEGER AUTO_INCREMENT,
data_point_2 VARCHAR(30),
data_point_3 VARCHAR(30)
);
今、私が何をしたいのかTABLEBとTABLECににtableAからデータを転送しています。だから、本質的に、私は何かしたい:(私は仮定の選択が必要になります)
INSERT INTO tableB
SELECT
data_point_1,
(SELECT cid FROM tableC WHERE (INSERT INTO tableC SELECT data_point_2, data_point_3 FROM tableA))
FROM tableA
を私は上記を試していないが、INSERTは実際の値を返さないので、私はそれが不可能であると仮定していますしかし、私の質問はどのように私はCからデータを挿入することができますし、同時にCからのIDと別のデータポイントを取得し、それらの両方をBに入れます。
私はおそらく破ることができますそれは2つの挿入ステートメントにしてCのどこでdata_point_2 = data_point_2とdata_point_3 = data_point_3の選択を行うが、私はちょうど1つのクエリでそれを行う方法があるのだろうか?私は何かを見つけることができなかったので、私はここで尋ねると思った。
もう一度:私は2つの別々の挿入クエリをしたくありません。私は次のようにあなたがITIN 2文を行うことができます
回答はありませんか?まだこれを実行可能な方法を見ていない... –
あなたは不可能(MySQLのためにとにかく)を求めているかもしれません。あなたが懸念していることはわかりませんが、トランザクションの仕組みを調べることができます。彼らはあなたが多くの発言を事実上「一瞬で」起こすことができる方法です。 – Andrew
誰かが解決策を見つけることができないので、見た目からは不可能かもしれません。 Thanks =/ –