// Table Aliases
var t0 = new Orders().AsQueryable();
var t1 = new OrderDetails().AsQueryable();
// query for the max [OrderDetailId] grouped by [OrderId]
var sub_sql = Odb.SQL.Select(x =>
x.From(t1)
.GroupBy(t1.OrderID)
.Fields( x[t1.OrderID].AS("Id"), x[t1.OrderDetailID].MAX().AS("LastDetailId") )
);
// join [Orders] with [sub query]
Odb.SQL.Select(x =>
x.From(t0).Top(5)
.LeftJoin( sub_sql, sub_sql["Id"].ToInteger() == t0.OrderID )
.Fields( t0.OrderID, sub_sql["LastDetailId"] )
);
QHUpM8