SQL запрос для получения объектов

Есть таблицы

1) Objects -> objId | objName

2) ObjectGroup -> objId | groupId (у одного объекта может быть несколько групп)

3) Group-> groupId | groupName | isHidden (группа может быть скрытой)

Нужно из таблицы Objects достать те объекты у которых все указанные в таблице ObjectGroup группы являются скрытыми в Group.

Используется DBHelper и прямые sql запросы. Не могу составить запрос..


Ответы (1 шт):

Автор решения: DuosDuo

Составил вот такой запрос (это кусочек), на первый взгляд, работает. С базу вытягиваются все объекты у которых нет групп или если все указанные для них группы isHidden = 1 (скрыты)

String query = "SELECT * FROM " + Objects    
    + " LEFT JOIN " + ObjectGroup + " ON " + ObjectGroup.objId + " = " + Objects.objId 
    + " AND " + ObjectGroup.groupId 
    + " in (SELECT " + Group.groupId + " FROM " + Group + " WHERE " + Group.isHidden +" = 0)"    
    + " WHERE " + ObjectGroup.objId + " IS NULL"; 

Group.isHidden -> 1 скрыт, 0 не скрыт.

→ Ссылка