代码之家  ›  专栏  ›  技术社区  ›  Bill

使用sqlite join处理将导致光标

  •  1
  • Bill  · 技术社区  · 14 年前

    我在本地的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关系。我即将使用多个查询,而不是“关系数据库方式”。希望我只是不知道更好的做事方法。

    我打算通过内容提供者公开这个查询,我不希望所有的使用者都必须编写相同的聚合逻辑。

    1 回复  |  直到 14 年前
        1
  •  2
  •   CommonsWare    14 年前

    联接在我使用过的每个SQL数据库中都是这样工作的——这有点像概念的定义。

    记住,内容提供者涉及到远程过程调用,这是昂贵的。这就是为什么Android会将结果非标准化,并将结果与您的联系人等连接线相同,以最小化进程之间的往返。

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