SQL中INSERT INTO查询中的多个SELECT语句

时间:2011-11-08 11:07:08

标签: sql select insert

 INSERT INTO TextTable(Number, Tokens)  
 SELECT 
 (SELECT  ID FROM  Tureme WHERE leksem IN  
 (SELECT  Tokens FROM  Text)),
 (SELECT  Tokens FROM Text WHERE Tokens IN 
 (SELECT  leksem FROM Tureme));

TextTable有两列 - >数,令牌 Tureme有两列 - > ID(主键),leksem 和 文字有一列 - >令牌

我的桌子:

TextTable为空。

我要做的是将这些子查询的结果插入到TextTable中。子查询单独完美。但是,当我一起运行它时,它不会插入子查询的结果,并且它会出错:

子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。 声明已经终止。

我该怎么办?


第一个子查询返回:第二个子查询返回:

ID令牌

4                              apple
6                              melon
9                              pear

我想用这些值填充TextTable。

2 个答案:

答案 0 :(得分:1)

根据你的新评论,这就是你想要的选择陈述

SELECT ID, Text.Tokens
FROM Tureme
JOIN Text ON Tureme.leksem = Text.Tokens

您需要在查询中加入表格 - 否则结果彼此无关。

答案 1 :(得分:1)

INSERT INTO TextTable
SELECT DISTINCT ID, Text.Tokens
FROM Tureme
JOIN Text ON Tureme.leksem = Text.Tokens

我想这正是你想要的。