ストレージにSqlite3データベースを使用するAndroidアプリケーションに取り組んでいます。
最近、特定の列の状態に基づいて、複数の類似した行から行を選択する必要があるという問題に遭遇しました。
具体的には...
ソースデータ:
_id | code | language | data
1 | 1 | English | aaa
2 | 1 | French | bbb
3 | 1 | Spanish | ccc
4 | 1 | Portuguse| ddd
5 | 2 | English | eee
6 | 2 | French | fff
7 | 3 | English | ggg
8 | 4 | French | hhh
データベース内の複数のエントリは、同じコード値と異なる言語値を持つことができます。
私の条件は次のとおりです。
各コード値のレコードが少なくとも1つ必要です。
希望する言語に基づいて検索する必要があります。スペイン語で言語を指定する場合、スペイン語のすべてのレコードを取得する必要があるとします。
指定した言語を持たないコードエントリがある場合は、そのコードの英語エントリを取得する必要があります。
コードエントリのいずれかに1つの言語のレコードが1つしかない場合は、指定した言語に関係なく、そのレコードを取得する必要があります。
上記の表からの私の期待される結果:
私がスペイン語として言語を与える場合:-
3 | 1 | Spanish | ccc
5 | 2 | English | eee
7 | 3 | English | ggg
8 | 4 | French | hhh
1,2,3,4のコード値が必要です。
コード1のスペイン語の言語で私はスペイン語の記録を持っているので、それは来るはずです。
コード2のスペイン語の場合、スペイン語のレコードがないため、コード2のレコードと英語の言語を選択する必要があります。
コード3および4のレコードにはエントリが1つしかないため、これらのレコードを取得する必要があります。
同様の行でこの種の条件を操作する方法についてWebで多くのことを検索しましたが、答えを得ることができませんでした。誰かが期待される結果のクエリを手伝ってくれませんか。
前もって感謝します。