«Как извлечь данные из нескольких таблиц с помощью курсоров в Android Studio»

#android #sql #android-studio #cursors

#Android #sql #android-studio #курсоры

Вопрос:

Я попытался извлечь данные из двух таблиц с помощью курсоров, но я получаю данные только из одной таблицы. пожалуйста, помогите.

Вот полный код.

//Создание таблиц

// Таблица T24

 db.execSQL("CREATE TABLE IF NOT EXISTS T24 (ID NUMBER PRIMARY KEY,STARTING VARCHAR,DESTINATION VARCHAR"  
                        ",PLACES VARCHAR,PLACESFARE NUMBER(9,3),HOTELS VARCHAR,HOTELSFARE NUMBER(9,3),TRANSPORT VARCHAR,"  
                        "TRANSPORTFARE VARCHAR,DAYS INTEGER,TOTALFARE NUMBER(9,3))");
  

// Таблица P21

  db.execSQL("CREATE TABLE IF NOT EXISTS P21" "(NAME VARCHAR PRIMARY KEY,NO NUMBER,"  
                    "ADDRESS VARCHAR,DAYS NUMBER,DATE NUMBER,MONTH NUMBER)");
  

// Извлечение данных из базы данных.

  db = openOrCreateDatabase("tour", Context.MODE_PRIVATE, null);
         String query1 = "select *from T24 where "  
               "STARTING='"   s3   "' and DESTINATION='"   s4   "'";
        Cursor c = db.rawQuery(query1, null);
        if (c.moveToFirst() == true) {
            t1 = c.getString(3);
            t2 = c.getString(4);
            t3 = c.getString(5);
            t4 = c.getString(6);
            t5 = c.getString(7);
            t6 = c.getString(8);
            t7 = c.getString(9);
            t8 = c.getString(10);
        }
        c.close();
        db.close();
        ptv.setText(t1);
        pf.setText(t2);
        hotels.setText(t3);
        hf.setText(t4);
        td.setText(t5);
        tf.setText(t6);
        fare.setText(t8);
        try {
            db2 = openOrCreateDatabase("tour", Context.MODE_PRIVATE, null);
            String query2 = "select *from P21 where"  
                    "NAME='"   e1   "'";
            Cursor c1 = db2.rawQuery(query2, null);
            if (c1.moveToFirst() == true) {
                t9 = c1.getString(0);
                t10 = c1.getString(1);
                t11 = Integer.parseInt(c1.getString(3));
                t12 = Integer.parseInt(c1.getString(4));
                t13 = Integer.parseInt(c1.getString(5));
            }
            c1.close();
            db2.close();
            Toast.makeText(getApplicationContext(), "done3", Toast.LENGTH_LONG).show();
            name.setText(t9);
            no.setText(t10);
            sdate1.setText(t12);
            sdate2.setText(t13);
  

Я могу извлечь дату из таблицы «T24», но не могу извлечь данные из таблицы «P21».

Пожалуйста, помогите.

Комментарии:

1. попробуйте использовать запрос объединения для извлечения данных из нескольких таблиц androidopentutorials.com /…

Ответ №1:

Я думаю, вы оставили пробел после «where» в предложении sqlite в P21:

 String query2 = "select *from P21 where"  
                "NAME='"   e1   "'";
  

Вам нужно написать так:

 String query2 = "select * from P21 where "  
                "NAME='"   e1   "'";