> To me SQL is still the best query language we have.
OQL! Okay, so nobody ever implemented OQL. But there are OQL-inspired query languages in production which i prefer to SQL for routine use, such as JPQL.
One reason for that preference is the ability to join through foreign keys with a syntax which resembles property access on objects:
select e
from Employee e
where e.department.head.manager.level = 'VP'
This beats the equivalent SQL:
select e.*
from Employee e
join Department d using (department_id)
join Employee h on d.head_id = h.employee_id
join Employee m on h.manager_id = m.employee_id
where m.level = 'VP'
Admittedly, whilst JQPL is nice for this sort of routine fetch-and-filter stuff, it lacks the more powerful features of SQL like window functions, recursive common table expressions, etc. I don't often need those, but when i do, it would be rather painful to do without them.
OQL! Okay, so nobody ever implemented OQL. But there are OQL-inspired query languages in production which i prefer to SQL for routine use, such as JPQL.
One reason for that preference is the ability to join through foreign keys with a syntax which resembles property access on objects:
This beats the equivalent SQL: Admittedly, whilst JQPL is nice for this sort of routine fetch-and-filter stuff, it lacks the more powerful features of SQL like window functions, recursive common table expressions, etc. I don't often need those, but when i do, it would be rather painful to do without them.