Yes, Matisse now supports equi-joins among
classes. For example, the following statement selects the names of
movies along with their director names:
SELECT m.name, d.lastName, d.firstName
FROM movie m, movieDirector d
WHERE m.directedBy = d.oid
The join condition is expressed using the relationship 'directedBy' defined between the two classes. The relationship 'directedBy' works as the foreign key and 'oid' works as the primary key. Here is another example using SQL join.
If you want to select movies with directors whose name starts with 'S', use the following statement:
SELECT m.name, d.lastName, d.firstName
FROM movie m, movieDirector d
WHERE m.directedBy = d.oid AND d.lastName LIKE 'S%'
Since the navigation between objects that forms the Matisse join mechanism is part of the Matisse database architecture, the join operation executes significantly faster than the same operation performed using a relational database. In the Matisse object SQL database, the join operation is a simple navigational process.
Matisse SQL joins provide a fast and easy way to develop applications using mainstream development and reporting tools |