Я хочу выполнить следующий запрос (в псевдокоде) на Android:
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 = ?
Я хочу выбрать идентификатор и имя ВСЕХ контактов в адресная книга системы через ContentProvider контактов по умолчанию вместе с
Поле 0/1, указывающее, является ли контакт членом группы ?
.
Я, конечно, мог бы достаточно легко получить все контакты, а затем достаточно легко перебрать и запросить членство по отдельности в моем классе адаптера, но я мог бы представить выполнение двух запросов, поскольку один внешний объединенный запрос даст гораздо лучшую производительность.
Могу ли я сделать это с помощью стандартной высокоуровневой строковой проекции и метода ContentResolver.query ()
? Или такой запрос потребует более прямого выполнения SQL?