我想知道如何在解析时实现以下SQL查询,
e.g。假设我们的DB中有2个表/类:User,Profile,括号中的示例值。
User
- email(tt@tt.com)
- Name(tt)
Profile
-email(tt@tt.com)
-age(23)
Sql query,
select User.email,User.name,Profile.age from User
JOIN Profile on User.email = Profile.email
Where User.email = 'tt@tt.com'
结果记录集为"tt@tt.com,tt,23e"
。
现在,如果我想用Parse做更好的事情,或者更好,我怎么能实现这个?
我读到了这些结构,但我不知道它们是否适用于这种情况以及如何使用它们。我在Android上开发
任何帮助将不胜感激。
答案 0 :(得分:1)
如果您在班级_Users
上有指向Profile
的指针,那么最佳方法就是:
var Profile = Parse.Object.extend("Profile");
var query = new Parse.Query(Profile);
query.equalTo("email", request.params.email);
return query.first().then(null, function(error) {
return Parse.Promise.error('Sorry, this profile was not found.');
}).then(function(profile) {
profile.get('_User').fetch().then(function(user) {
console.log(
'name : ' + user.get('name') + ' ' +
'age : ' + profile.get('age')
);
});
});
profile.get('_User')
注意您的指针名称可能会更改,而不是_User
答案 1 :(得分:0)
试试这个解决方案。 在User类中,创建指向配置文件的指针。然后,您可以从User类查询以获取Profile。
ParseQuery<User> parseQuery = ParseQuery.getQuery("User");
parseQuery.whereEqualsTo("emai", "youremail@mail.com");
parseQuery.getFirstInBackground(new GetCallback<User>() {
public void done(User user, ParseException e) {
if (e != null) {
Log.d("score", "The getFirst request failed.");
return;
}
Profile profile = (Profile) user.get("profile");
}
});