お忙しいところありがとうございました。
早速試した結果です。 ・SQL文は、テーブル outvar_lab_newを CREATEし、最初の INSERT-WHERE文まで正常に動作しました。 ・次の INSERTの FROM LEFT JOIN ON の部分でエラーが出ました(添付画像を参照してください)。
解決の糸口を探るため、SQL文に不慣れでしたのでOracleで文法とにらめっこしてました。 (気が付いたこと) ・SELECT * FROM文で関連するテーブルを確認すると、 テーブル outvar_lab の内容が NULL です。 ・この状況で、ON 条件文のうち ============= AND outvar_lab.val = temp_labels.val ============= の左側が NULL だとSyntaxはエラーにならないのでしょうか?
(参考:実行したSQL全文) ================================================================ CREATE TABLE temp_labels ( var VARCHAR(255), val VARCHAR(255), label VARCHAR(255) );
INSERT INTO temp_labels (var, val, label) VALUES ( '発生場所その他', 'RI室', 'テスト1' );
CREATE TABLE outvar_lab_new ( id INT PRIMARY KEY AUTO_INCREMENT, var_id INT NOT NULL, val VARCHAR(255), lab VARCHAR(255) );
INSERT INTO outvar_lab_new (var_id, val, lab) SELECT outvar.id, temp_labels.val, temp_labels.label FROM outvar, temp_labels WHERE outvar.name = temp_labels.var;
INSERT INTO outvar_lab_new (var_id, val, lab) SELECT outvar_lab.var_id, outvar_lab.val, outvar_lab.lab FROM outvar, outvar_lab LEFT JOIN temp_labels ON outvar.name = temp_labels.var AND outvar_lab.val = temp_labels.val WHERE outvar_lab.var_id = outvar.id AND temp_labels.label IS NULL;
DROP TABLE temp_labels; DROP TABLE outvar_lab;
RENAME TABLE outvar_lab_new TO outvar_lab ================================================================
|