来自另一个 table 的 WHERE 子句使用 NOT IN

WHERE clause from another table using NOT IN

我无法在 sqlite android 中 运行 查询,它抛出以下错误:

android.database.sqlite.SQLiteException: no such table: table1.item1 (code 1): ,while compiling: SELECT * from table1, table2 where table1.item1 not in table2.item1

我的原始查询是:

Database.rawQuery("SELECT * from "+ TABLE1 +", "
    +TABLE2+" where "+ TABLE1 +"" + "."+ ITEM1 +" not in "
            + TABLE2 +"."+ ITEM1, null);

字符串常量:

TABLE1= "table1", TABLE2="table2", ITEM1= "item1"

我想要 table1 中的所有行,其 item1 不在 table2 的 item1 值列表中。

我需要添加一些 GROUP BY 语句吗?

如果这是您要查找的内容,这将是您的查询:

SELECT * FROM table1 WHERE item1 NOT IN (SELECT item1 FROM table2)

您的 "SELECT * FROM table1, table2" 会为您提供表 1 和表 2 的每条返回记录的组合。这通常不是预期的。