-3

私は Android SQLite データベースに取り組んでおり、私の要件は 2 つのテーブルからデータを取得することです。テーブルはステータスとダイナーです。

ステータス表:

ここに画像の説明を入力

ダイナーステーブル:

ここに画像の説明を入力

私の意図は、diners テーブルの din-status_color 列の値と status テーブルの color_status-id 列の値が等しいときに、status テーブルから color_desc のデータを取得することです。

Android SQLite でクエリを作成するには?

4

3 に答える 3

1

ここに完全なチュートリアルがあります。

良いチュートリアル

そしてこれは初心者向け

于 2012-11-14T12:58:12.887 に答える
0

私は SQLite の専門家ではありませんが、単純な結合ステートメントでうまくいくと思います。このような何かがあなたを始めるかもしれません。

  Cursor c = database.rawQuery("select diners.id, status.color_desc from dinners inner join status on status.color_status_id = diners.din_status_color");

この例では、カーソルはディナー ID と color_desc を持ちます。

于 2012-11-14T18:31:26.093 に答える
0

最初にdinersテーブルを反復処理し、列「din_status_color」からすべての値を取得します(おそらくすべて0より大きい)

その後、status テーブルを繰り返し処理し、「color_status-id」を diners テーブルの「din_status_color」と比較します。一致する場合、color_desc を返します。

これはあなたを助けるでしょう:

protected String getColorDesc(){
    String[] din_status_color = {"din-status_color"};
    String[] color_desc = {"color_desc"};

    Cursor cursor = database.query("diners", din_status_color, "din_status_color > '0'", null, null, null, null);
    cursor.moveToFirst();

    Cursor cursor2 = database.query("status", color_desc, "color_status-id = '" + cursor.getInt(0) + "'", null, null, null, null);
    cursor2.moveToFirst();

    String colorDesc = cursor2.getString(0);

    cursor2.close();
    cursor.close();

    return colorDesc;
}
于 2012-11-14T14:38:52.927 に答える