2016-01-30 17 views
0

這是關於解析後端。android +解析:連接兩個表並查詢它

我有兩個表:

事件: OBJECTID,接觸,航向,經緯度,NOI,ACL,父母,用戶(指向用戶),data_to,功能,網絡鏈接,updatedAt組織(指針組織),地址,EMAILID,標籤,大,RSVP(布爾),createdAt,圖像,date_from,描述,is_major_event,組(指針集團)

Event_stat: OBJECTID,ACL,createdAt,事件(指針事件),rsvp(join/maybe/seen),updatedAt,user(指向用戶的指針)

我想加入這些表和結果表將被用於查詢,如:從

選擇* [加入結果]其中event_stat_user = 「asdcvb」 AND 組織= 「ABC」 AND(event_stat_rsvp =「加入「OR rsvp =」maybe「)sortby event_stat_updatedAt

任何人都可以幫助我如何在Android中實現這一目標?

+0

https://www.parse.com/questions/how-to-join-several-tables-with-one-to-many-關係 –

+0

僅供參考http://blog.parse.com/announcements/moving-on/ :( – MilapTank

+0

@milapTank依然是我的客戶要求..當然,我知道這件事,但仍然.. –

回答

1

我找到了一種方法來創建一個子查詢:

ParseQuery<ParseObject> query = new ParseQuery("event_stats"); 
query.setLimit(1000); 
query.whereEqualTo("user", ParseUser.getCurrentUser()); 
ParseQuery<ParseObject> parseInnerQuery = new ParseQuery<>("event"); 
parseInnerQuery.whereEqualTo("organization", ParseObject.createWithoutData("organization", Data.getValue(OrganizeActivity.CURRENT_ORGANIZATION))); 
query.whereMatchesQuery("event", parseInnerQuery); 
query.include("event"); 
query.findInBackground(new FindCallback<ParseObject>() { 
    @Override 
    public void done(List<ParseObject> list, ParseException e) { 

     if (e == null && list != null && list.size() != 0) { 
      List<Event> listEvent = new ArrayList<Event>(); 
      for (ParseObject parseObject : list) { 
       listEvent.add(Event.getEventById(getValue(parseObject, "event"))); 
      } 
      masterEventAdapter.setEvents(listEvent); 
      } else { 
     } 
    } 
});