2015-11-11 82 views
0

我使用此查詢從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第二查詢的結果?

+0

你嘗試[這](http://stackoverflow.com/questions/18772803/sql-insert-into-with-subquery-and-value)? – m0skit0

+0

在這裏看看如何從table1行中選擇並插入到table2行 - http://stackoverflow.com/questions/74162/how-to-do-insert-into-a-table-records-extracted-from -otherother-table – Tasos

+0

我試過這個:'db.insert(「listelement(fkrid)SELECT」+ COL_RID +「AS」+ COL_FK_RID +「FROM」+ TABLE_ROOM +「WHERE」+ COL_RNAME +「=」+ room,null ,null);'但代碼沒有影響(也沒有錯誤) – Rastaman

回答

1

我找到了完美的方法。這正是我需要的!

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

3

只需使用update Query來更新第一個表的記錄,但是您需要一個where子句來更新它,否則它將更新第一個表的所有記錄。

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

此查詢將更新表項和contentValues是更新後的值,如果不提供任何WHERE子句像我有比它會更新整個表。

相關問題