2011-02-27 76 views
2

我不知道我是否正確表述了它,但我會盡力解釋我想要的內容。基於從另一個表中提取的數據的SQL質量插入

Table 1 - X 
id | name | blah 

Table 2 - Y 
id | Xid | configKey | ConfigVal 

我想要做的是,創建表2中的一行在表1中,其中從表1中對應的ID會在列的Xid在表2中的一切,我從Java的背景是和不太喜歡sql,所以不太確定如何做到這一點。表1中有很多行,這就是爲什麼我想將其編出來的原因。

我非常想要做這樣的事情:

Table1 (the object table) 
1 test1 a 
2 test3 b 
3 testn n 

運行查詢得到填充這個

Table 2 (the config table) 
...exisitng rows 
59 1 doSomething true 
60 2 doSomething true 
61 3 doSomething true 

所以,我非常想在配置添加一行(所有相同的值)除了它對應的id(表2中的第2列應該是表1中的第1列)

謝謝

+0

價值發生的事情什麼DBMS? – Nishant 2011-02-27 06:08:34

+0

我更新了它的更多信息,DBMS是mySql – Th3sandm4n 2011-02-27 06:58:33

回答

4

要使用固定的值 'DoSomething的' 和 '真實' 的所有插入的記錄:

insert into table2 (Xid, configKey, ConfigVal) 
select id, 'doSomething', 'true' 
from table1 
3

使用Select Into鏈接爲SQL Server語法,語法因服務器而異,但格式通常非常接近。

SQL服務器

select id as Xid, value as name, 'other value' as blah INTO TABLE1 from TABLE2 

我的SQL

INSERT INTO table1 (id, name,other_value) 
SELECT xid, value, 'another value' as other_value from TABLE2 

這裏是一個SQL Tutorial走您完成整個過程。

+0

我正在使用mysql,這是我有: – Th3sandm4n 2011-02-27 06:32:32

+0

我試過第二個,但事情是我想在其他值添加到(這都是一樣的在整個插入的行中)不應該從另一個表中複製。我詳細說明了我在問題中的含義 – Th3sandm4n 2011-02-27 06:41:40

+0

只是將它們別名...'a'作爲 – Nix 2011-02-27 14:02:17

0

我想這可能工作

Insert into table2(xid, value) 
select id, name from table1. 

但你必須在表2 Id列作爲一個標識或必須給它一個默認值。 (這僅適用於SQL Server中,雖然)。

相關問題