如何用swift在域中执行连接查询?

时间:2016-09-24 15:29:31

标签: swift realm

我想执行连接查询

table1)
class student 
{
   name:String
   classcode:Int
}

table2)
class classcode
{
   classcode:Int
   name:String
}

数据示例

student:

| name | classcode |
| john | 001       |
| Kim  | 002       |

classcode:

| classcode | name     |
| 001       | computer | 
| 002       | Math     |

我想获得输出 - ? john,computer

如何在Realm中执行查询?

1 个答案:

答案 0 :(得分:2)

Realm是一个基于对象的数据库,因此查询中连接的概念并不适用于它。

在这种特殊情况下,将classcode个对象设置为student类中的列表是合适的。像这样:

class Class: Object {
   dynamic var classCode = 0
   dynamic var name = ""
}

class Student: Object {
   dynamic var name = ""
   let classes = List<Class>()
}

--- 

let realm = try! Realm()

let computerClass = Class()
computerClass.classCode = 1
computerClass.name = "Computer"

let newStudent = Student()
newStudent.name = "John"
newStudent.classes.append(computerClass)

try! realm.write {
    realm.add(computerClass)
    realm.add(newStudent)
}

领域List对象不存储Object个实例的副本;它们仅存储对其表中相应Object的引用。通过这种方式,它可以复制您在连接查询中所期望的相同类型的设置。

如果您需要澄清,请告诉我们! :)