显示另一个表SQLite中不存在的值

时间:2017-08-04 05:45:01

标签: sql sqlite cursor

我想在EXTRA_CALL中显示TBL_CALLPLAN中不存在的值。 我有疑问是:

Cursor c = db.rawQuery("select a.CODE, a.NAME from EXTRA_CALL a LEFT JOIN TBL_CALLPLAN b ON b.CCODE=a.CODE " +
                "WHERE b.CCODE IS NULL", null);

当我运行该查询时,该值始终显示在EXTRA_CALL表中。我的错在哪里?

2 个答案:

答案 0 :(得分:0)

此查询使我的问题解决:

    Cursor c = db.rawQuery("select a.CODE, a.NAME from EXTRA_CALL a where " +
            "not a.code in (select ccode from tbl_callplan) order by a.custname asc", null);

答案 1 :(得分:-1)

对于每个CALLPLAN行,确实没有匹配的EXTRACALL行,或者您的SQLite遇到了相同的错误,某些版本的Oracle 9i在ON条件中的表顺序很重要。交换它以使查询显示on a.code=b.ccode并查看结果是否不同。它应该不是,但是当使用那个古老版本的oracle时,它肯定期望JOIN关键字左侧的表也是=左侧的表,如果做左连接。也许SQLite也有这个坏习惯