Tenho um pequeno aplicativo Kotlin que usa um banco de dados Supabase como backend. Tenho o problema de ter 2 relações nas tabelas que quero recuperar e não consigo encontrar uma solução para minha consulta.
Tenho uma tabela que contém itens, isso já é exibido no código fornecido abaixo. No entanto, essa tabela tem uma relação com uma tabela que contém categorias. Essa tabela de categorias tem um ID, um nome e um ID pai. Esse ID pai se refere a outra categoria que serve como a categoria principal. Gostaria de recuperar a subcategoria e a categoria principal com o item. Existe uma maneira de fazer isso em uma consulta simples?
Incluí um exemplo de consulta SQL que cobre o problema aqui
SELECT
a.name,
c1.name AS sub_category,
c2.name AS main_category,
FROM "Item_Table" a
LEFT JOIN categories c1 ON a.category_id = c1.id
LEFT JOIN categories c2 ON c1.parent_id = c2.id;
Meu código Kotlin no aplicativo está atualizado, então:
@Composable
fun ItemsList() {
var itemsList by remember { mutableStateOf<List<Item>>(listOf()) }
LaunchedEffect(Unit) {
withContext(Dispatchers.IO) {
itemsList = supabase.from("Item_Table")
.select().decodeList<Item>()
}
}
LazyColumn {
items(
itemsList,
key = { it.id },
) { item ->
Text(
item.name,
modifier = Modifier.padding(8.dp),
)
}
}
}