Obtener datos de la base de datos en una estructura de árbol en sqlite
En mi aplicación tengo una tabla de árbol estructurado y quiero saber que si puedo buscar los datos de estructura de árbol de base de datos sqlite simplemente aplicando una sola consulta. Actualmente estoy lopping manualmente usando un bucle for y capaz de cumplir con mi requisito, pero no estoy satisfecho con ese enfoque, ya que es más complejo, puede ser mucho tiempo, etc
Mi estructura de la tabla de la tabla es como abajo,
- ¿Cómo llegar desde un servidor MySql a una aplicación para Android?
- Convierta un sitio web con un diseño de respuesta a la aplicación de Android
- Creación de una aplicación de Android para ejecutar PHP y MySQL en Tablet Android
- Cómo utilizar base de datos SQL otros medios de almacenamiento de datos
- Valor siempre devuelve 0 donde debe devolver el número de fila insertada
parent_id | cat_id null | 1 1 | 2 1 | 3 1 | 4 4 | 5 4 | 6
Por lo tanto, ahora por encima de es mi estructura de la tabla y quiero obtener la estructura de árbol como, Si me pasa parent_id como 1
en mi consulta, entonces debe volver 2,3,4,5,6
como 1
es padre de 1, 2, 3, 4
y 4
es padre de 5,6
y también 4
es hijo de 1
Por lo tanto, la entrada y la salida esperada por mí,
input output 1 2,3,4,5,6 4 5, 6
Por lo tanto, hay una manera sencilla de lograr la estructura de árbol anterior mediante sqlite consulta?
O
No hay manera de lograr esto utilizando la consulta sqlite y necesito seguir el método actual o la forma en que lo estoy utilizando mediante bucle manualmente todos los ID de categoría.
- almacenar y recuperar la imagen del servidor WAMP usando android
- Error en el enlace de comunicaciones El último paquete enviado al servidor fue hace 1 ms.
- ¿Cómo construir el complemento de MySQL para Qt android?
- Transferencia de datos enormes del servlet a la aplicación Android
- Subir una imagen de Android a la base de datos MySQL
- Android: ¿Cómo enviar datos a MySQL DB sin usar JDBC, PHP o cualquier otro servicio web?
- Devolver una gota con json
- ¿Cómo puedo iniciar sesión con facebook y obtener información de usuario para enviar mi db remoto desde la aplicación android
Puede utilizar el método group_concat como está disponible en sqlite.
Para su pregunta he creado una tabla llamada Trans
y añadido las columnas cat_id
y cat_id
.
select parent_id, group_concat(cat_id) from trans group by parent_id;
Tengo mesa como esta he mencionado a continuación.
Y conseguí resultante como esto:
Espero que esto te ayudará.
No encontré ninguna solución de sqlite sí mismo, así que creé un algoritmo que crea la estructura del árbol iterando sobre cada id y sobre sus sub_ids y escribe en base de datos.
Había pasado por tablas de cierre que da el resultado esperado que estaba buscando como una solución
Algunas referencias más de Tabla de Cierre –
http://technobytz.com/closure_table_store_hierarchical_data.html http://karwin.blogspot.in/2010/03/rendering-trees-with-closure-tables.html
- GCM Cloud Connection Server – cómo empezar a usarlo?
- Cómo excluir dispositivos con memoria RAM baja en Google Play Store