1

私はカーソルを取得するために複雑なクエリを行う必要がある1つのシナリオに立ち往生しています。それは可能かどうかわからない。シナリオ: データベースには3つのテーブルがあります。データベースクエリandroid sqlite

 Table   Columns 
Table-1 _id, name, number, .... 
Table-2 _id, table1_id, col1, col2, .... 
Table-3 _id, table2_id, col1, col2, .... 

これらの表では、表2にレコードが挿入されると、対応する表IDがそのレコードに挿入されます。 table2と同じidがテーブル3レコードに挿入されます。

私は、CursorAdapterのカーソルにTable-3データのリストビューを表示したいと思います。

Cursor cursor = getContentResolver().query(TABLE_3_NAME, null, null, null, null); 

このクエリでは、Table-1の選択と選択の引数を追加する必要があります。
Androidで可能ですか?

+0

は、あなたがリストビューに表3のデータを表示するようにしてからのことを表1からのデータが時にリストビューから特定のデータを選択しますたいです –

答えて

1

ロークエリを使用すると、さまざまなテーブルからフェッチできます。その一例は以下の通りです。

Cursor mCursor = db.rawQuery("SELECT * FROM Table-1, Table-3 " + 
         "WHERE Table1.id = <Whatever selection args you want> " + 
         "GROUP BY Table1.id", null); 

これは単なる例です。あなたの要件に応じて変更する必要があります。

1

SQL選択クエリ(通常の方法)を書くことができ、rawQuery()メソッドを使用して実行できます。例えば

Cursor cursor = db.rawQuery(selectQuery, null);