2011-05-14 112 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