如何在sqlite中编写以下选择

时间:2013-08-15 04:39:57

标签: android sql sqlite

我希望获得条形码为空或条形码状态为活动状态的ID。条形码状态存储在另一个表中。这是我试过的

SELECT a.id from a 
       where a.bar='' 
          OR a.bar=(SELECT b.barcode from b where b.barcode=active)

但是当有一些结果应该到来时,它什么也没给我。我在哪里弄错了?

提前致谢

3 个答案:

答案 0 :(得分:1)

SELECT a.id FROM a 
       WHERE a.bar=''  
          OR a.bar IN (SELECT b.barcode FROM b WHERE b.barcode='active')

答案 1 :(得分:0)

您可以使用原始查询:

这是它的代码

Cursor getData(String a){

     return db.rawQuery(SELECT a.id from a where a.bar='' OR a.bar=(SELECT b.barcode from b where b.barcode=active));

}

答案 2 :(得分:0)

我猜您的子查询会返回多个记录,所以在这种情况下,您必须使用IN而不是=。另外我猜b.barcode是一个varchar字段,所以你应该使用varchar常量'active'

SELECT a.id from a 
       where a.bar='' 
          OR a.bar IN (SELECT b.barcode from b where b.barcode='active')