我正在使用sqlite,我用“IN”运算符触发了一个查询,但它花了很多时间来显示数据。我的查询如下:
String Sql_query = "select id as _id,PARTY_NAME, PARTY_ADD1 as PARTY_ADD1,PARTY_KEY,PARTY_VAT from PARTYMAST where PARTY_KEY in( Select OUTACCD from OUTLETMST where OUTSMCD = " + salesman_code + " and Party_name like '" + etsearch.getText() + "%')";
现在减少获取数据的时间我已经制作了两个游标,如下所示:
String Sql = "select id as _id,PARTY_NAME, PARTY_ADD1 as PARTY_ADD1,PARTY_KEY,PARTY_VAT from PARTYMAST";
String Sql2 = "Select OUTACCD from OUTLETMST where OUTSMCD = " + salesman_code + " and Party_name like '" + etsearch.getText() + "%')";
Cursor c1 = dbhelper.showdata(this,Sql);
Cursor c2 = dbhelper.showdata(this,Sql2);
现在我想在一个游标中合并这两个游标c1和c1,如c1 + c2 = main_cursor
我已将两个游标合并为以下代码:
MergeCursor merge_cursor = new MergeCursor(new Cursor[] {
c1, c2});
但它在merge_cursor中不起作用我只得到第一个光标(c1)的数据。 可能吗 ?如果有人遇到这类问题,请指导
编写此查询的其他任何方式?
提前谢谢。
答案 0 :(得分:1)
您可以使用Join或Union。
比如一个例子: -
sql = sql1;
sql += " UNION "
sql += sql2;