如何根据另一个表的查找插入值?

时间:2010-04-21 16:20:23

标签: sql insert-into

我需要找到一种方法来执行INSERT INTO table A,但其中一个值来自于表B上的查找,请允许我进行说明。

我有以下2个表格:

表A:

A1: String
A2: Integer value coming from table B
A3: More Data

表B:

B1: String
B2: Integer Value

A的示例行:{“Value”,101,MoreData} B的示例行:{“English”,101}

现在,我知道我需要将以下内容插入到A {“Value2”,“English”,MoreData}中,但显然这是行不通的,因为它期望第二列中的Integer不是“English”,所以我需要先在表B中进行查找。

这样的事情:

INSERT INTO tableA (A1, A2, A3) 
VALUES ("Value2", SELECT B2 FROM tableB where B1="English", MoreData);

显然这不起作用......

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

怎么样:

Insert into tableA ( a1,a2,a3) 
(select "value2", b2, moreData from TableB where B1 = "English")

答案 1 :(得分:1)

似乎没有括号的跨DBMS,正如@Andriy M评论的那样:

insert into tableA (a1, a2, a3) 
select 'value2', b2, moreData from tableB where B1='English'