関連するテーブルをクエリする必要があるときは、常にrawQuery()
を使用します。しかし、ContentProvidersもRawクエリもないより良いアプローチがありますか? すべてのフィールドを定数(ハードコードされていない)として定義し、それらをすべて手作業で連結しなければならない場合は、生のクエリを書くのは非常に面倒です。間違いをするのはとても簡単です。 ありがとう!これ以上の答えが提供されていないものの:ここrawQuery()を使用せずにAndroidでクエリに関連するテーブル
あなたが見ることができるようにあなたは、いくつかの単純化されたコード例を持っているが、
String sql = "SELECT "+T_PARTICIPATION+".* , "+STUDENT_SURNAME+"+\", \"+"+NAME+" AS "+NAME+" "+
"FROM "+T_PARTICIPATION+", "+T_STUDENT+" "+
"WHERE "+T_PARTICIPATION+"."+CONNECTION_PROFILE_ID+"=1 AND "+SEANCE_ID+" IN (1, 2)";
return mDatabase.rawQuery(sql, null);
編集...定数のすべての時間をCONCATする「丁寧」ではありません@JoeMalinが提供するものを受け入れる
こんにちは!はい、これはコンテンツプロバイダとして公開する必要はありません。私はあなたが複数のテーブル(FROMの複数のテーブル)を照会することを許可していないので、query()は使用しません。私は質問を編集し、いくつかのコードを含んでいます。あなたの応答から、私はこのメソッドがより適切であると思います: 'public static String buildQueryString(boolean distinct、String tables、String [] columns、String where、String groupBy、String having、String orderBy、String limit) ' – Caumons
'buildQueryString()'を使うより良い方法があるかどうか知っていますか? – Caumons