Вставить значение из одной таблицы в несколько записей

Я использую этот запрос, чтобы получить все мои элементы из TABLE_LISTELEMENT, которые не имеют записи в столбце COL_FK_RID.

db.rawQuery("SELECT * FROM " + TABLE_LISTELEMENT + " WHERE " + COL_FK_RID + " = ?", new String[]{"null"});

Теперь я проверяю свою вторую таблицу, чтобы получить COL_RID

db.rawQuery("SELECT " + COL_RID + " FROM " + TABLE_ROOM + " WHERE "+ COL_RNAME + " = ?",new String[]{room}).toString();

Как мне вставить результат моего второго запроса в столбец COL_FK_RID моей первой таблицы?


person Rod Kimble    schedule 11.11.2015    source источник
comment
Вы пробовали это?   -  person m0skit0    schedule 11.11.2015
comment
посмотрите здесь, как выбрать из строки table1 и вставить в строку table2 - stackoverflow.com/questions/74162/   -  person Tasos    schedule 11.11.2015
comment
Я пробовал это: db.insert("listelement(fkrid) SELECT " + COL_RID + " AS " + COL_FK_RID + " FROM " + TABLE_ROOM + " WHERE " + COL_RNAME + " = " + room , null, null); Но код не действует (тоже нет ошибки)   -  person Rod Kimble    schedule 11.11.2015


Ответы (2)


просто используйте update Query, чтобы обновить запись первой таблицы, но вам понадобится предложение where, чтобы обновить его, иначе он обновит все записи первой таблицы.

db.update(TABLE_NAME, contentValues, ATTRIBUTE_ID + " = " + ID, null);

этот запрос обновит запись в таблице, а contentValues ​​- это обновленные значения, если вы не предоставите какое-либо предложение WHERE, как у меня, тогда он обновит всю таблицу.

person Zubair Akber    schedule 11.11.2015

Я нашел идеальный способ. Это было именно то, что мне нужно!

db.execSQL("UPDATE listelement SET fkrid = (SELECT rid FROM room WHERE roomname = '" + roomFromEditText + "')");

person Rod Kimble    schedule 12.11.2015