Comment Comment by ccouzens There are other ways, like having a null with more regular semantics and better composeability (like Rust's option type).Or imagine this data:Students:Name: BobName: AliceStudentsClassesStudent: Bob, class: cryptography.Student: Bob, class: databasesIf you can have arrays (or relations) as a field in your result set, thenStudents left outer join StudentsClassesCould returnStudent: Bob, classes: [ cryptography, databases]Student: Alice, classes: [] parent ccouzens 3 years ago
Or imagine this data:
Students:
Name: Bob
Name: Alice
StudentsClasses
Student: Bob, class: cryptography.
Student: Bob, class: databases
If you can have arrays (or relations) as a field in your result set, then
Students left outer join StudentsClasses
Could return
Student: Bob, classes: [ cryptography, databases]
Student: Alice, classes: []