4

私はここでこれと同様の質問をしました...

内部結合を持つ 3 つのテーブル

しかし、私の問題を解決するのに十分な答えが得られなかったので、もう一度質問することを余儀なくされています...

私は次のテーブルを持っています...

**

データで遊びたい人は誰でもここでテストして ください http://sqlfiddle.com/#!9/a0807

**

Table1
IDA    colB    colC    
111       a       w    
222       b       w    
333       c       s        
444       b       g    



Table2
IDB    colB    colC    
11       w       f    
12      w       r    
13      s       g    



Table3
IDA     IDB       
111     11         
222     12           
333     13       
444     14

次のコードは、問題なく table1 から table にコピーまたは挿入しますが、間違った table2 IDB を使用します (table2 IDB 値は table3 への内部結合から取得する必要があるため)。

INSERT INTO table2 SELECT * FROM table1 WHERE IDA = 111

しかし、すべてを table1 から table2 にコピーしますが、これは間違っています...

だから、私がしたことは...次の内部結合です...しかし、機能していません..

INSERT INTO table2
(SELECT * FROM table1 b 
LEFT JOIN table3 c ON c.IDA = b.IDA  
LEFT JOIN table2 a ON a.IDB = c.IDB)
WHERE IDB = 111

それもうまくいかない……。

しかし、私が必要としているのはまさに...テーブル1からテーブルにコピーして、テーブル3を介して接続したいのですが、利用可能な行が更新されていない場合は挿入されます....

2回も質問して申し訳ありませんが、皆さんからアイデアをいただければ幸いです...

助けてください...事前に感謝します...

可能であれば処理するためにphpを使用している可能性があります...

4

2 に答える 2