2013-11-26 2 views
0

Я работаю с 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

Использование присоединиться вашего запроса. –

+0

Что именно вы подразумеваете под «слиянием»? –

ответ

1

Вы можете использовать Join или Union для этого.

Как для примера: -

sql = sql1; 
sql += " UNION " 
sql += sql2; 
Смежные вопросы