我想在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表中。我的错在哪里?
答案 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也有这个坏习惯