Hi,
Odoo intentionally avoids LEFT JOINs in views like Sales
Orders to keep queries simpler, modular, and avoid issues like row
duplication in one-to-many or many-to-many relationships.
Instead,
it uses a prefetching mechanism that batches related record queries
efficiently and caches them for reuse, reducing the total number of
queries during record navigation.
This design helps maintain
better form view performance, especially when fields involve access
rules or computed values, which can make complex joins slower or
problematic.
Although it may look inefficient in profiling tools,
this approach generally results in better real-world performance,
scalability, and database compatibility, especially with PostgreSQL.
Hope it helps.