2011-12-31 40 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