2011-11-08 190 views
0
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有兩個columns->號碼,令牌 Tureme有兩列 - > ID(主鍵),leksem 和 文本有一列 - >令牌多個SELECT語句INTO查詢在SQL

我的表格:

TextTable爲空。

我想要做的是將這些子查詢的結果插入到TextTable中。子查詢可以單獨完美工作。但是,當我將它們放在一起運行時,它不會插入子查詢的結果,並且會顯示一條錯誤消息:

子查詢返回多個值。當子查詢遵循=,!=,<,< =,>,> =或當子查詢用作表達式時,這是不允許的。 該聲明已被終止。

我該怎麼辦?


第一子查詢返回:                                             二子查詢返回:

ID                                                                                                                    令牌

4        apple 
6        melon 
9        pear 

我想填充TextTable這些值。

+1

您應該使用連接而不是子查詢。 – Oded

+1

請顯示一些示例數據。子查詢甚至返回相同數量的行嗎?左側子查詢的行應該如何與右側的行相關聯? –

回答

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

我想這正是你想要的。

+0

這正是我想要的。非常感謝! – LuckySlevin

1

基於新的意見,這是你想要的select語句

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

你需要加入表中查詢 - 否則結果不涉及對方。

+1

甚至提交這個答案有什麼意義?可能有0.01%的機會,這是OP想要的(不確定的任意頂級表達)。可以在評論中提出「請更好地定義您的問題」一點。 –

+0

@MartinSmith - 這一點非常明確。這個答案向OP展示了編譯器所需要的東西 - 哼哼,它會讓他清楚如何更好地解決問題定義或實際的解決方案。是的,它就像一個評論,但它很長,很難在​​評論中閱讀。它*甚至可以成爲他想做的事 - 因爲我們都不知道。 – Hogan

+0

+1在編輯之後! –