使用 WHERE 子句更新 JOIN 另一个 table

Update with WHERE clause JOIN another table

我有以下 table:

习惯

ID INT PRIMARY KEY

NUMBER INT FOREIGN KEY

DATE DATE

DONE BOOL


HABIT_DESCRIPTION

NUMBER INT PRIMARY KEY

NAME VARCHAR

DESCRIPTION VARCHAR

我想更新 HABIT 中的特定行,其中 HABIT_DESCRIPTION 的名称是

我试过这个:

ContentValues cv = new ContentValues();
    cv.put(HABIT_COL_DONE, true);
    String whereclause = HABIT_DESCRIPTION_NAME+ "='water'";
    return db.update("HABIT",cv,whereclause,null);

由于 SQLite 不支持 UPDATE 语句中的连接,您可以使用 EXISTS:

String whereclause = 
    "EXISTS (SELECT 1 FROM HABIT_DESCRIPTION WHERE NUMBER = HABIT.NUMBER AND DESCRIPTION = ?)";
String param = "water";
return db.update("HABIT", cv, whereclause, new String[] {param});