私はstackoverflowに慣れていないので、優しくしてください。SQL の構文に深刻な問題があります。肝心なのは、あるテーブルから別のテーブルに重複なしでコピーしたいということです。2 つのフィールドを比較し、destinationTB の field1 に NULL がある場合にのみ挿入するつもりでした。
私はSQLステートメントの初心者であることを知っておいてください.変数を使用できるかなど、詳しい知識があれば役立ちます. スタックオーバーフローの調査から最初の声明を受け取りましたが、それを完了することができませんでした。
これが私が持っているものです。助けてくれてありがとう。
INSERT INTO destinationTB
SELECT sourceTB.field1, destinationTB.field1
FROM sourceTB
LEFT JOIN destinationTB
ON sourceTB.field1 = destinationTB.field1
WHERE destinationTB.field1 IS NULL;
----- 修正された質問 -----
ヒントをありがとう!質問 (および今後の質問) をより理解しやすいものに修正するよう努めます。また、前回の質問でぎこちない「初心者」の匂いがしたことをお詫びします。
私が探している最終結果は、重複することなく、あるテーブルから別のテーブルにコピーすることです。私が取り組んでいる2つのテーブルがあります。1 つ目は、destinationTB です。これには 4 つのフィールドがあり、そのうちの 1 つだけを入力します。2 番目のテーブルは sourceTB で、複数のフィールドがありますが、情報を取得する必要があるのはそのうちの 1 つだけです。私の計画は、INSERT を destinationTB に開始することでした。最初の値がそこになかったので、NULL として返されるはずです。最初の挿入が完了した後、文字列は現在存在していたのと同じ値に対してまだ実行されていましたが、NULL を報告しなくなり、destinationTB にない別の値が見つかるまで先に進みました。
例として、テレビを見てみましょう。テレビのメーカーは複数あります。この例では、SHARP-32in、SHARP-45in、SHARP-60in があるとします。sourceTB に 3 つあるにもかかわらず、destinationTB に SHARP のインスタンスを 1 つだけ持たせたいのです。そのため、その JOIN ステートメントを使用して、destinationTB.manufacturer と sourceTB.manufacturer を比較しようとしました。このクエリを実行すると、後で貼り付けられます。この段落では、3 つのインスタンスすべてが返されるため、destinationTB に 3 つの SHARP 値が含まれることになります。
あなたの提案に基づいて試した最新のものは次のとおりです。
INSERT INTO destnationTB (field1)
SELECT sourceTB.field1
FROM sourceTB
LEFT JOIN destinationTB ON sourceTB.field1 = destinationTB.field1
WHERE destinationTB.field1 IS NULL;