2014-09-26 88 views
3

我試圖執行以下SQLite的查詢的一部分:本表允許一個只選擇單一的結果是一個表達式

SELECT * FROM monsters WHERE (uid IN added_monsters) 

create table if not exists added_monsters(STRING name, INTEGER uid) 

,但我得到一個錯誤「只有一個結果允許作爲表達式的一部分的SELECT「。

+1

查詢嵌套不正確請給出架構以及您希望執行的查詢口頭 – Tushar 2014-09-26 09:27:52

+0

它是因爲您返回多個結果。嘗試'SELECT * FROM怪物WHERE(uid IN added_monsters)限制1' – Gandalf 2014-09-26 09:31:27

+0

我想得到一個怪物列表,其中唯一的ID也存儲在另一個表中。 @Gandalf我用你的命令,但仍然得到相同的問題 – GeekPeek 2014-09-26 09:32:33

回答

3

我不得不執行INNER JOIN得到我所需要的信息: 「SELECT * FROM怪物INNER JOIN added_monsters ON monsters.uid = added_monsters。 UID;」

10

added_monsters有兩列,所以數據庫不知道用IN來檢查哪一個。

你要提取單個列:

SELECT * FROM monsters WHERE uid IN (SELECT uid FROM added_monsters) 
相關問題