2011-12-31 56 views
1

我是新的Android应用开发 我使用UNION查询这样的如何使用联盟在Android中

public Cursor getAll() { 
     return (getReadableDatabase() 
       .rawQuery(
         "SELECT _id,x,y from Not where _id=" 
           + id 
           + " UNION ALL " + "SELECT _id,z,q from Q_A where z=" 
           + zid, null)); 
    } 

    public String getX(Cursor c) { 
     return (c.getString(1)); 
    } 

    public String getY(Cursor c) { 
     return (c.getString(2)); 
    } 
    public String getQ(Cursor c) { 
     return (c.getString(3)); 
    } 

它会给出错误

IllegalStateException异常:从0行第3栏第拿到场插槽失败

我完全卡住了这一点,并弄糊涂我的查询是否错误或我的访问方法是错误的?

回答

1

你会错误的。 这是一个简单的解决方案,通过两个表连接查询

SELECT a._id, a.x, a.y, b._id, b.z, b.q 
FROM Not a, Q_A b 
WHERE a._id = id 
AND b.z = zid 
a.comId = b.refId