Reputation: 71
I want to execute join query
table1)
class student
{
name:String
classcode:Int
}
table2)
class classcode
{
classcode:Int
name:String
}
Data example
student:
| name | classcode |
| john | 001 |
| Kim | 002 |
classcode:
| classcode | name |
| 001 | computer |
| 002 | Math |
I want to get output -? john,computer
How can I execute the query in Realm?
Upvotes: 1
Views: 4614
Reputation: 15991
Realm is an object-based database, so the concept of joins in queries doesn't apply to it.
In this particular case, it would be appropriate to set up classcode
objects as a list in the student
class. Like so:
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)
}
Realm List
objects do not store copies of Object
instances; they only store references to the corresponding Object
in its table. In this way, it replicates the same sort of setup you'd expect in a join query.
Let me know if you need anymore clarification! :)
Upvotes: 2