![](/img/trans.png)
[英]How to make a SELECT query in Hibernate includes Subquery COUNT(*)
[英]How to make Realm query with subquery and in statement
我现在用java工作Realm,我不知道如何使用子查询。
我有两个像下面的RealmObjects。
public class Sms extends RealmObject {
@PrimaryKey
private String id;
private String address;
}
public class Statement extends RealmObject {
@PrimaryKey
private String id;
private String smsId;
}
我希望与Realm进行查询,以执行与下面的sql相同的工作。
SELECT
*
FROM
sms
WHERE
id not in (
SELECT
sms_id
FROM
statement
)
and address = "123456789"
;
我怎样才能实现它?
2015-12-18更新:
@geisshirt,非常感谢你的回答。
我从他的答案中得到了一个想法,下面是结果。
RealmResults<Statement> statements = realm.where(Statement.class).findAll();
RealmQuery<Sms> query = realm.where(Sms.class).equalTo("address", "123456789");
for(Statement statement : statements){
query = query.notEqualTo("id", statement.getSmsId());
}
RealmResults<Sms> smsList = query.findAll();
我认为这将实现我的目标,但我怀疑这是实现not in
或in
声明中的唯一方法。
现在有没有更清楚地做到这一点?
使用您当前的模型,您将不得不迭代:
RealmResults<Statement> statements = realm.where(Statement.class).equalTo("address", "123456789").findAll();
for(Statement statement : statements) {
RealmResults<Sms> sms = realm.where(Sms.class).notEqualTo("id", statement.smsId).findAll();
// do something to sms
}
我不确定查询的真正含义:你的意思是id in
而不是id not in
吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.