2017-08-07 110 views
0

我無法獲得此SQL語句的權利。我想選擇帶電子郵件到另一個表,但我不明白我在做什麼錯:將SQL Server表中的數據導入到另一個表中

INSERT INTO submitted (mail) 
    SELECT 
     submitted.bandid, 
     band.mail, 
     band.id 
    FROM 
     band 
    WHERE 
     submitted.bandid = band.id 

任何人都可以幫助我嗎?

+0

你在說你想在新表中插入一列('mail') - 但是你從原始表中選擇了**三列 - 這是行不通的。 **或者**定義要將這些值插入到目標表中的**三列**,或者**只需選擇要實際用於從源插入數據的** one **列表 –

回答

2

試試這個,你必須指定1列插入到,但你的SELECT查詢中包含3列,也表中您沒有加入:

INSERT INTO submitted (mail) 
SELECT 
band.mail 
FROM band 
INNER JOIN submitted ON submitted.bandid = band.id 
1

你沒有提到你的錯誤消息」重新獲得,但我懷疑問題是您只在該語句的INSERT部分指定了一列,但SELECT部分返回了很多列。

This w3schools page有此查詢應該如何構建一個很好的例子:

僅複製某些列從一個表到另一個表:

INSERT INTO table2 (column1, column2, column3, ...) 
SELECT column1, column2, column3, ... 
FROM table1 
WHERE condition; 
0

我懷疑你想update,不insert

UPDATE s 
    SET mail = b.mail 
    FROM submitted s JOIN 
     band b 
     ON s.bandid = b.id; 

insert將新的插入表中。 update更新現有的行中的列。

相關問題