我期待执行下面的查询(在伪代码):我可以使用ContentResolver.query()来执行此Android查询吗?在Android(LEFT JOIN和CASE)
SELECT C.ID, C.NAME, CASE ISNULL(G.GROUPID,0) = 0 THEN 0 ELSE 1 END INGROUP
FROM CONTACTS C
LEFT JOIN GROUPMEMBERSHIP G ON G.CONTACTID = C.ID AND G.GROUPID = ?
我期待选择系统中的地址簿中的所有联系人的标识和名称,通过默认的联系人内容提供者,以及指示联系人是否为?
组成员的 0/1字段。我可以很容易地获得所有的联系人,然后在我的Adapter类中分别循环查询各个成员资格,但我想象执行这两个查询作为一个外部联接查询会产生更好的性能。
我可以用标准的高级别字符串投影和ContentResolver.query()
方法来做到这一点吗?或者这种查询是否需要挖掘更直接的SQL执行?
从四处搜索,我得到的印象是,您不能使用SQLLiteDatabase查询其他应用程序......在我的情况下是CONTACTS uri,但仅用于查询您自己的数据存储区。它是否正确?在这种情况下,我想我会在绑定我的活动时停留在我的Adapter类中执行子查询。 – eidylon 2011-06-27 17:10:18
@eidylon:我不知道你在查询联系人数据库。是的,你是对的:( – Macarse 2011-06-27 17:45:36
Drat!噢,以及...向上和向上!谢谢! – eidylon 2011-06-27 20:58:17