私は次のモデルを持っています
カテゴリ(id、name、is_active)places(id、name、category_id、.....)
ユーザーの好みに基づいて、カテゴリはになります0 or 1
。この設定に基づいて、すべての場所にクエリを実行したいと思いますcategories.is_active = 1
。
2つのアプローチがあると思います
最初のアプローチ
- is_active=1であるすべてのカテゴリをクエリして取得します
- 上記で取得したカテゴリIDのコレクションからすべての場所のリストを取得します。
2番目のアプローチ
JOINを使用してRawQueryを記述し、条件を設定します。
速度を最適化するためにそれを行うための最良の方法はどれですか?
私は何を試しましたか?
// Get Active Categories
public Cursor getActiveCategories() {
return db.query(TABLE_CATEGORIES, new String[] { COLUMN_ID,
COLUMN_NAME, COLUMN_SLUG, COLUMN_ACTIVE }, COLUMN_ACTIVE + "="
+ "'1'", null, null, null, COLUMN_NAME, null);
}
// Get Places
public Cursor getPlaces() {
return db.query(TABLE_PLACES, new String[] { COLUMN_ID, COLUMN_NAME },
" type IN ('1','2')", null, null, null, null);
}
上記のコードで、タイプIN ('1','2')
を動的に挿入して、最初のメソッドの結果からタイプを入力できるようにする方法は?