![](/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.