Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo agregar sub consulta en SQLITE Android junto con 'IN'?

Mi problema es que tengo que escribir esto

select * from contacts where id in (select cpk from mapping where gpk = 'MY-VARIABLE-HERE') 

Consulta en Android pero falla cuando se ejecuta.
Cuando funciono esto con la variable estática trabaja y proporciona los datos pero cuando intento esto con args de las selecciones falla.

Hasta ahora he probado estos:

1) Cursor cursor = myDataBase.rawQuery("select * from contacts where id in (select cpk from mapping where gpk = "+"'"+"?"+"'"+")", new String[]{grpName});

2) Cursor cursor = myDataBase.query(TABLE_CONTACTS, null, "id in", new String[]{"(select cpk from mapping where gpk = '"+grpName+"')"}, null, null, null);

3) Cursor cursor = myDataBase.rawQuery("select * from contacts where id in (select cpk from mapping where gpk = ?)", new String[]{grpName});

Por favor, ayúdame … Gracias de antemano …

3 Solutions collect form web for “¿Cómo agregar sub consulta en SQLITE Android junto con 'IN'?”

Resolví esto, estaba pasando el valor equivocado de variable.

 Cursor cursor = myDataBase.rawQuery("select * from contacts where id in (select cpk from mapping where gpk = ?)", new String[]{grpName}); 

Estaba funcionando correctamente.

Gracias a todos por la ayuda .. 🙂

Puedes hacerlo:

 String query="SELECT * FROM contacts WHERE id IN (SELECT cpk FROM mapping WHERE gpk = '"+grpName+"')"; Cursor cursor = myDataBase.rawQuery(query, null); 

Hacer esto pasar en la cláusula where

Gpk =?

Y en la matriz de valores pasar los valores como

 new String[] {gpk_value} 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.