2011-05-14 89 views
0

我花了很多時間在android中搜索此查詢的分辨率。Android SQLite語法 - IN子句和子選擇

SELECT * FROM positionen WHERE _id IN (SELECT positionenid FROM fahrtenbuch_position WHERE fahrtenbuchid = 2) 

我認爲我的方式是錯誤的。在rawQuerys和普通查詢中都沒有android中的子查詢?任何人都可以把我推向某個方向嗎?我如何獲得帶有其他ID的_id?

+0

它必須工作。你確定_id是否真的在子選擇子句中? – pawelzieba 2011-05-14 14:16:12

回答

0

我沒有玩過android的sqllite,但我有一種感覺,這可能適用於你。而不是:

SELECT * FROM positionen WHERE _id IN (SELECT positionenid FROM fahrtenbuch_position WHERE fahrtenbuchid = 2) 

嘗試

SELECT * FROM positionen p inner join fahrtenbuch_position f on p._id=f.fahrtenbuch_position where fahrtenbuchid = 2 

如果您想了解什麼,我只是做了,這樣說的:http://en.wikipedia.org/wiki/Inner_join#Inner_join

+0

是的,它的工作原理! :D我嘗試了內部聯接之前,但我有一個錯誤。但爲什麼另一個不工作?那個與「IN」。 – user753654 2011-05-14 14:33:06

+0

我不知道爲什麼子選擇(帶「in」的那個)不起作用 - 我對android sqllite數據庫的細節知之甚少,但內連接應該更有效率 – Travis 2011-05-14 23:11:04