2010-06-02 57 views
1

我在本地Sqlite数据库中有一对多的关系。很基本的东西。当我做我的左外连接我回来的结果是这样的:处理w/Sqlite在游标中加入结果

而产生光标有看起来像这样的多行:

A1.id | A1.column1 | A1.column2 | B1.a_id_fk | B1.column1 | B1.column2 

A1.id | A1.column1 | A1.column2 | B2.a_id_fk | B2.column1 | B2.column2 

等等...

有处理这种结果的标准做法或方法?显然只有A1,但它有许多B-n关系。我接近使用多个查询而不是“关系数据库方式”。希望我只是没有意识到更好的做事方式。

我打算通过内容提供商公开此查询,我恨所有的消费者必须编写相同的聚合逻辑。

+0

你能发表你正在用于查询的sql语句吗? – m6tt 2010-06-02 16:02:00

回答

2

联接已经在我曾经使用的每个SQL数据库中以这种方式工作 - 这是有点概念的定义。

请记住,内容提供者涉及远程过程调用,而这些调用非常昂贵。这就是为什么Android会将结果与联系人等联合进行非结构化的原因之一,以最小化进程之间的往返行程。

您可以考虑使用远程服务而不是内容提供程序,并公开自定义API。您可以通过简单的List<>返回给定A的B。或者,你可以用JSON格式序列化整个事情。或者其他任何可能性,如果数据重复干扰你。