2011-12-29 1 views
2

値と今私は私が多くの行と列との顧客のアドレスを含むこれらのDBとの2つのテーブルを持っている..あなた皆さんから をいくつかのアドバイスのを必要としています。テーブルの名前はData、Ordersです。は類似した値のための2つのテーブルを比較し、挿入は、私は、データベースに取り組んでいます

今の問題は、私は判断基準として電子メールを使用したデータのアドレスを持つ表の受注に存在するアドレスを検索する必要があります。 電子メールに一致するものがある場合はOKです。そうでない場合は、テーブルの住所のアドレスをテーブルのデータに挿入する必要があります。 ...

私はこのクエリを作ったが、私はいくつかのエラーを取得しています。

INSERT INTO orders (orders_id, customers_id, customers_cid, customers_vat_id, customers_name, customers_email_address) VALUES((select o.* from Test.dbo.orders o where o.customers_email_address not in (select a.email0 from CobraDemoData.dbo.Data a))) 

すべてのヘルプははるかに高く評価された。.. おかげで、 スバシュ

+1

あなたのエラーは何ですか? – diagonalbatman

答えて

1

あなたは、SELECT文から直接値を挿入することができます - あなたはそれをしたいときに使用valuesをドント。また、SQL Serverは、通常ははるかに速く、それはケース・バイ・ケースだということを実行して、あなたは、not inの代わりにnot existsを使用することができますので、それは本当に問題だ場合は、クエリプランを見ることができます。

insert into orders (orders_id, customers_id, customers_cid, customers_vat_id, customers_name, customers_email_address) 
select 
    o.* 
from 
    Test.dbo.orders o 
where 
    not exists (
     select 1 
     from 
      CobraDemoData.dbo.Data a 
     where 
      a.email0 = o.customers_email_address 
    ) 

また、正しい列が転置されていることを確認するために、select文に列を指定することもできます。

+0

大変ありがとうございます..... – Subash

関連する問題