2013-11-22 50 views
0

我使用下面的查询来获取项目的Android SQLite的子查询不返回任何值

Query="Select * from Item_List where idSubcategory = (Select _id from SubCategory_List where Name = ?)"; 
c = db.rawQuery(Query, new String[] { Search }); 

的列表中,但它返回任何结果。

我在从设备和仿真器中拉出的数据库上运行此查询。在那里我得到了正确的结果,但是当我在设备上运行它时,没有数据被返回。

+0

你有使用的调试检查“搜索”包含你认为它的价值?否则,我会尝试在查询字符串中嵌入“搜索”的实际值来代替?看看它是否有任何区别。 – NigelK

+0

@Dhiraj Tayade你解决了你的问题吗? – JJ86

回答

-1

你可以尝试一种不同的方式吗?如link所述,使用execSQL()。这完全是同一个问题。

编辑

可惜我没注意到execSQL()返回任何数据(一天的工作即将结束,终于来了!)。我唯一的解决方案是做第一个查询,这个结果将是第二个查询的参数。

EDIT 2

尝试“IN”添加到您的查询,例如:

Query = "Select * from Item_List where idSubcategory in (Select _id from SubCategory_List where Name = ?)" 
+0

我其实有一个复杂的查询。 'SELECT * FROM Item_List其中_id IN( \t \t从TopItem_List选择idItem其中IdCustomer =( \t \t \t选择从Cust_List _id其中Name = '?' \t \t) \t)' –

+0

@DhirajTayade这就是为什么我认为它不管用;将您的“搜索”添加到字符串查询中,然后使用.execSQL()。 – JJ86

+0

'execSql'不能返回数据。 –