# Pastebin zhpmmRlT fernando@Fernandos-MBP-2  ~/Red   master  raku -I. -MRed -e ' model ModuleVersion { ... } model Module is table { has $.id is id; has $.name is column; has ModuleVersion @.versions is relationship{ .module-id }; } model ModuleVersion { has UInt $!id is id; has UInt $.major is column; has UInt $.minor is column; has UInt $!module-id is referencing(*.id, :model(Module)); has Module $.module is relationship(*.module-id); } sub get-db-column-name { "name" } red-defaults "SQLite"; schema(Module, ModuleVersion).create; my $*RED-DEBUG = True; .say for ModuleVersion.^all.grep(*.module."{ get-db-column-name }"() == 1).sort({ -.major, -.minor }).head(1) ' SQL : SELECT "module_version".id , "module_version".major , "module_version".minor , "module_version".module_id as "module-id", "module_version_module".id as "module_version_module.id", "module_version_module".name as "module_version_module.name" FROM "module_version" LEFT JOIN "my_module" as module_version_module ON "module_version".module_id = "module_version_module".id WHERE "module_version_module".name = 1 ORDER BY major DESC, minor DESC LIMIT 1 BIND: []