2011-06-13 74 views
1

是否有方法從查詢中獲取結果並將該結果複製到特定列中的其他表中。從表A中獲取特定值並將該結果複製到表B中?

這裏是我迄今爲止

//get CONTACT_ID from RETAILER_ID and create some loop that goes through all CONTACT_ID values and execute the queries below: 

select CSN from CONTACTS where CONTACT_ID = '103309'; 

上面的查詢會從Contacts表CSN價值,我想執行下面的東西:

update RETAILER_CONTACTS set columnB = new CSN where CONTACTS_ID='103309'; 

我需要做到這一點的RETAILER_CONTACTS中的每一條記錄,爲什麼我需要執行上述某些循環中的每個CONTACTS_ID,我從下面的查詢中找到:

選擇CONTACT_I D來自RETAILER_ID;

在此先感謝

+1

如果'CSN'在邏輯上是一個'CONTACT'的屬性,那麼它不應該在'RETAILER_CONTACTS'列在所有。查看[數據庫標準化](http://en.wikipedia.org/wiki/Database_normalization),特別是更新異常。 – 2011-06-13 10:49:51

+0

他們需要的是CSN值才能在RETAILER_CONTACTS中完全用於索引 – jonney 2011-06-13 13:16:15

回答

0

不知道我知道你想要做什麼,但大部分時間,在SQL中使用循環的願望是有風吹草動。我認爲你可以做你想做的東西像什麼:

update RETAILER_CONTACTS 
set columnB = CSN 
from RETAILER_CONTACTS RC, 
    CONTACTS C, 
    RETAILERS R 
where C.CONTACT_ID = '103309' 
and C.CONTACT_ID = RC.CONTACT_ID 
and C.RETAILER_ID = RC.RETAILER_ID 
+0

看起來很有趣。即時通訊只處理兩個名爲Contacts的表,另一個名爲RETAILER_CONTACTS。 這兩個表都有一個CONTACTS_ID,RETAILER_CONTACTS有CSN列,我希望將CSN從CONTACTS_ID複製到RETAILER_CONTACTS表的列B中 – jonney 2011-06-13 10:48:59

+0

這個可能的工作是什麼? – jonney 2011-06-13 10:56:03

+0

更新RETAILER_CONTACTS 設置RC.columnB = C.CSN 來自CONTACTS C,RETAILER_CONTACTS RC 其中RC.CONTACTS_ID = C.CONTACTS_ID; – jonney 2011-06-13 10:56:21

相關問題