2011-03-17 71 views
0

我一直在閱讀關於SQL插入INTO的W3學校,這從我的理解中創建了一個數據備份副本到一個新表。我有300多條記錄要添加。SQL:將數據從1個表複製到另外3個

我有4個表格,其中之一是我正在應對的來源。 1)卡接,這是源 2)pro_Profile,主DEST 3)pro_Email,仲DEST 4)pro_Address,第三​​DEST

我有超過此數據庫schemea沒有控制權。重建所有工作都需要太多的工作才能與1個表格然後是3個表格一起工作。另外,我添加的數據可能與現有數據的副本相同,因此我們也需要跳過這些數據。

卡存取有以下字段: CSUID映射到pro_Profile 的firstName映射到pro_Profile lastName的映射到pro_Profile 易名映射到pro_Profile 郵箱地址映射到映射到pro_Address

pro_Email 聯繫電話號碼

一旦我複製到Pro_Profile中,它需要獲得主鍵,profileID,它是所有這些表中的概要文件的引用。

如何將所有這些數據首先複製到pro_Profile中,這樣我就可以獲得唯一的密鑰profileID,它是所有其他表格的生成密鑰?

這裏是我到目前爲止的代碼:

SELECT 
    FirstName, 
    LastName, 
    eName, 
    CSUID 
INTO 

WHERE NOT EXISTS (
Select 
    firstName, 
    LastName 
From 
    pro_Profile 
) 

新的查詢,從而影響0行

INSERT INTO pro_Profile ("firstName","lastName","userName","departmentID","csuID") 
SELECT "First Name","Last Name","eName","Department","CSUID" 
FROM "Card Access" 
WHERE NOT EXISTS (
Select 
    firstName, 
    LastName 
From 
    pro_Profile 
) 

回答

1

您插入的格式將是

INSERT INTO table1 (column1) 
SELECT col1 
FROM table2 

所以基本上你選擇你想要插入。您將能夠將其作爲所有表中的一個語句來執行,並且還可以添加where子句。檢查出this問題的答案。

更新: 首先編寫您的sql查詢以獲取要插入的行。因此,您上面的查詢:

SELECT "First Name","Last Name","eName","Department","CSUID" 
FROM "Card Access" 
WHERE NOT EXISTS (
Select 
    firstName, 
    LastName 
From 
    pro_Profile 
) 

單獨運行時應返回您將要插入的所有結果。當你運行它時,你會得到什麼?

更新:我認爲你是misunderstading不存在。檢查出this。我想你需要的東西,如:

SELECT "First Name","Last Name","eName","Department","CSUID" 
FROM "Card Access" ca 
WHERE (
    Select count(*) 
    From pro_Profile 
    WHERE firstName = ca.firstName 
    AND LastName = ca.lastName 
) = 0 

UPDATE:或者你也應該能夠做到:

SELECT "First Name","Last Name","eName","Department","CSUID" 
FROM "Card Access" ca 
WHERE NOT EXISTS (
Select 
    firstName, 
    LastName 
From 
    pro_Profile 
WHERE firstName = ca.firstName 
    AND LastName = ca.lastName 
) 
+0

我只是去嘗試,並得到了消息,(0行(S)的影響),它是張貼在上面。 – 2011-03-17 19:17:14

+1

@jschoen,你需要在'NOT EXISTS'中連接兩個表的'WHERE' – Brad 2011-03-17 19:24:56

+0

@Brad我認爲你所說的會起作用,但我認爲我剛剛提出的計數也會起作用。 – 2011-03-17 19:33:15

相關問題