我期待執行下面的查詢(在僞代碼):我可以使用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