Odpowiedzi SQL są z natury płaskimi tabelami, więc oprócz knex będziesz potrzebować zewnętrznej biblioteki, która może zrekonstruować płaskie informacje do zagnieżdżonych obiektów.
Większość bibliotek ORM wie, jak to zrobić. Na przykład objection.js
który jest zbudowany na bazie Knex używa .eager()
aby pobrać relacje zagnieżdżone. Z objection.js ORM zapytanie wyglądałoby tak Project.query().where('id', 1).eager('employees')