Android SQLite MINUS查询

问题描述:

我想用查询中的值初始化游标。该查询是为了返回表1中不在表2中的内容。为此,我使用了MINUS子句,但它似乎没有工作,而且我也看不到我出错的地方。Android SQLite MINUS查询

查询

return db.rawQuery("select _id, ingredient_name, measurement, unit from ingredients where recipe_code = " + recipe_code + 
      " MINUS select ingredient_name, measurement, unit from kitchen", null); 

错误

02-05 11:35:05.189 29028-29028/com.example.rory.prototypev2 E/AndroidRuntime: android.database.sqlite.SQLiteException: near "MINUS": syntax error (code 1): , while compiling: select _id, ingredient_name, measurement, unit from ingredients where recipe_code = 11 MINUS select ingredient_name, measurement, unit from kitchen 
+1

什么是MINUS? –

+0

@M D SQL MINUS运算符用于返回第一个SELECT语句中不由第二个SELECT语句返回的所有行。每个SELECT语句将定义一个数据集。 MINUS操作员将从第一个数据集中检索所有记录,然后从结果中删除第二个数据集中的所有记录。 –

+0

但''SQLite'不支持这种'MINUS'类型的关键字 –

没有这样的运营商的SQLite。 SQLite Expressions

您可以改用EXCEPT子句。它在sqlite中受支持。在Docs中,我无法找到MINUS for sqlite

select _id, ingredient_name, measurement, unit from ingredients where recipe_code = " + recipe_code + " EXCEPT select ingredient_name, measurement, unit from kitchen" 

谢谢。