¿Cómo realizar la siguiente consulta con Greendao?
Tengo 2 mesas A y B.
La Tabla A contiene nombres y la Tabla B contiene los nombres seleccionados .
- Necesito una consulta SQL para encontrar todas las palabras que puede hacer con un conjunto de letras, incluyendo hasta dos fichas en blanco
- Análogo incorrecto de cadenas de fecha en SimpleDateFormat
- Guardar ArrayList en la base de datos SQLite en Android
- SQLite de Android - ¿por qué mi DB se vuelve a crear cada vez?
- ¿Qué diferencia hay entre SQLite y SQL?
Ahora me gustaría realizar la siguiente consulta en estas tablas utilizando greendao, Por favor, hágamelo saber si es posible y si no es hay alternativas (tal vez una consulta en bruto).
select * from A inner join B on A.nameid = B.nameid
También, las columnas de la Tabla A: id, nameid, name
y columnas de la Tabla B: id, nameid, name, rating
- Utilización de la base de datos legible y escrita de SQLite
- Conectando a la base de datos externa - Aplicación de Android
- Problema de orden de consultas SQLite de Android
- Método de cadena de escape Ormlite?
- Sincronizar SQLite con un servidor de bases de datos SQL externo
- Uso de una biblioteca / marco de compilador de consultas SQL con Android
- Sqlite3 tabla con límite máximo de líneas (por elección) eficiencia
- Android - Contacto desde el número con el código del país
Creo que esto podría ayudar. Puede utilizar la consulta sin procesar como una combinación falsa. Y obtienes todo lo que quieres en el objeto Query
Query query = ATableDao.queryBuilder().where( new StringCondition("nameid IN " + "(SELECT nameid FROM B_Table )").build();
Dado que "nameid" no parece ser un identificador único en su muestra. No voy a sugerir a usar las relaciones para resolver este problema. Si usted está tratando de usar las relaciones , puede encontrar mi respuesta anterior aquí.
Prueba esto:
List<ATableObj> listATableObj = ATableDao.queryRawCreate(", BTable BT WHERE BT.nameid = T.nameid").list();
Si utiliza greendao esto funciona de manera diferente:
En lugar de su consulta, seleccione filas de la tabla a (o b) y si necesita un campo de b (o a) llama a getB()
(o getA()
) para obtener la fila correspondiente de esa tabla.
Si tiene filas en la tabla a que no tienen coincidencia en la tabla b y tiene filas en la tabla b que no tienen coincidencia en y solo desea seleccionar todo lo que tiene coincidencias en ambas tablas, tendría que hacer una consulta en bruto para filtrar las filas de a (o b).
- MPAndroidChart – ¿Cómo definir la descripción en otra posición?
- crear diálogo de progreso con otro diseño