2011-12-29 64 views
2

我正在處理數據庫,現在我需要一些建議來自你們.. 我有2個表有很多行和列,這些數據庫包含客戶的地址。表格的名稱是數據,訂單。比較兩個表的相似值和插入值

現在的問題是我必須使用電子郵件數據中的地址作爲條件來搜索表格中的地址。 如果在電子郵件中有匹配,那麼它就ok ....或者我們應該在表數據中插入表Orders的地址。 ...

我做了這個查詢,但我得到一些錯誤。

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))) 

任何幫助深表感謝.. 謝謝, subash

+1

你的錯誤是什麼? – diagonalbatman 2011-12-29 21:22:51

回答

1

您可以直接從一個select語句插入值 - 當你想這樣做,請勿使用values。此外,您可以使用not exists代替not in,因爲SQL Server通常運行速度要快得多,但這是個例,因此如果問題真的存在,您可以查看查詢計劃。

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 2011-12-29 21:43:56